width: x, height:y라고 할때
1. brown은 2x+2y-4다. =>한줄만 테두리라는 것을 잊지 말아야 한다!
2. width는 최소 3이다. yello가 '1'일때 width가 최소 3이 되어야한다.
그리고 width는 최대 (brown-2)/2다. => height가 1이라고 할때 양옆에 2개 필요함 && 위아래로 같은 갯수 필요함
그래서 width를 3부터 max_width까지 돌아주게 했다.
3. height는 (brown-2*width+4)/2
4. brown+yello가 width*height랑 같아지면 바로 리턴
다른 블로그들을 보니 아이디어는 비슷하지만 조건문을 조금씩 다르게 하는 경우도 있다.
참고하실 분은 다른 블로그도 더 찾아보시길..
class Solution {
public int[] solution(int brown, int yellow) {
int[] answer = new int[2];
int num = brown+yellow;
//최대 width
int max_width=(brown-2)/2;
for(int width=3;width<=max_width;width++){
int height = (brown-2*width+4)/2;
if(width>=height){
int cal_num = width*height;
if(cal_num==num){
answer[0]=width;
answer[1]=height;
return answer;
}
}
else
continue;
}
return answer;
}
}
'코테 준비-문제풀기' 카테고리의 다른 글
프로그래머스 - 위장 /해쉬/자바 java (0) | 2020.10.23 |
---|---|
프로그래머스 - 정렬 가장큰수 / java (0) | 2020.10.23 |
프로그래머스 - 여행경로/DFS/BFS JAVA 자바 (0) | 2020.10.20 |
프로그래머스 - 단어변환 JAVA 자바 (0) | 2020.10.19 |
프로그래머스 - 완전탐색 소수찾기 JAVA 자바 (0) | 2020.10.19 |