문제
Note
어떻게 풀지 너무나도 고민했다... 처음에 미지수를 너무 많이 둬서 뱅글뱅글 돌았다. 으윽
하지만 결국 내가 생각해낸 방법으로 해결!
왠지 훨씬 쉬운 방법이 있을 것 같고 그것이 충격적일 것 같아서, 다른 사람 풀이는 천천히 봐야겠다...
Key
- yellow의 인수(=yellow의 가로세로)
제출한 코드
class Solution {
public int[] solution(int brown, int yellow) {
//yellow 의 세로 l, 가로 yellow/l
int l = 1;
//answer = {yellow/l+2, l+2}
//brown = 2(yellow/l) + 2l + 4
//yellow의 인수를 하나씩 넣어서 brown 식 충족하면 answer이다
//yellow의 인수 배열 만들기
//배열 길이 lengYell부터
int lengYell = 0;
for(int i = 1; i<=yellow; i++){
if(yellow%i == 0) lengYell++;
}
System.out.println(lengYell);
int[] yel = new int[lengYell]; //yellow의 인수 배열
int n =0;
for(int i =1; i<=yellow; i++){
if(yellow%i == 0){
yel[n] = i;
n++;
}
}
//yellow 인수 배열 yel에서 하나씩 꺼내서 l에 대입하고 brown을 충족하는지 확인한다.
for(int i =0;i<lengYell; i++){
if(brown == (2*yellow/yel[i] + 2*yel[i] + 4)){
l = yel[i];
break;
}
}
int[] answer = {yellow/l+2,l+2};
return answer;
}
}
반응형
'코딩테스트 > Java' 카테고리의 다른 글
소프티어/자바 lv.1 연탄 배달의 시작 - split(), Integer.parseInt(), nextLine(), Arrays.sort(arr) (1) | 2024.03.19 |
---|---|
프로그래머스/자바 lv.1 수박수박수박수박수박수? - String.join("",str), 삼항연산자 (3) | 2024.03.19 |
프로그래머스/자바 중복된 문자 제거 - HashSet, StringBuilder (0) | 2024.03.14 |