나의 풀이
import java.util.*;
class Solution {
public int[] solution(int brown, int yellow) {
ArrayList<int[]> list = new ArrayList<>();
int[] answer = {0, 0};
for (int i = 1; i <= Math.sqrt(yellow); i++) {
if (yellow % i == 0) {
list.add(new int[]{yellow / i, i});
}
}
// for(int i = 0; i<list.size(); i++){
// System.out.println(Arrays.toString(list.get(i)));
// }
for (int i = 0; i < list.size(); i++) {
int[] ints = list.get(i);
if (brown == (ints[0] + 2) * (ints[1] + 2) - yellow){
answer[0] = ints[0] + 2;
answer[1] = ints[1] + 2;
}
}
return answer;
}
}
▶ 약수를 구할 때 1는 1부터 시작한다.
▶ i<= Math.sqrt(yellow)에서 "="을 넣어주는 것을 잊지 말자.
'프로그래머스(자바) > LV.2(자바)' 카테고리의 다른 글
끝말잇기→contains()★+words[i].charAt(words[i].length()-1)★ (0) | 2022.12.24 |
---|---|
짝지어 제거하기→'문자비교' == , "문자열비교" equals, peek()★★+크레인 인형뽑기와 유사 (0) | 2022.12.24 |
다음 큰 숫자→'문자열'에서 특정 요소 개수 세기(replace)★★ (0) | 2022.12.24 |
피보나치 수→ 오버플로우 극복방법: %★★★ (1) | 2022.12.24 |
이진 변환 반복하기 → 특정 요소 개수 replace() 이용★★★ + 10진수→2진수★ (0) | 2022.12.23 |