문제 설명

제한 사항

입출력 예

풀이
class Solution {
public int[] solution(int brown, int yellow) {
final int total = brown + yellow;
for (int i = 3; i <= Math.sqrt(total); i++)
if (total % i == 0)
if (total - (total / i * 2 + (i - 2) * 2) == yellow)
return new int[] { total / i, i };
return null;
}
}
후기
일단 카테고리가 완전탐색으로 되어 있는데 그런건 모르겠고 그냥 마음대로 풀었다. 다른 사람 풀이를 보니까 근의 공식으로 풀었던데 나는 그것조차 생각해내지 못했다... 그런 방법이 있었다니
나는 그냥 갈색 + 노랑 = 전체 수니까 약수를 구하고 가운데 노랑이 들어가야 하니 작은 약수는 3부터 시작했다. 이후로는 그냥 total - 갈색 == 노랑 인지 확인하고 맞으면 그걸 리턴했다.
'코딩테스트 (프로그래머스) > Java' 카테고리의 다른 글
| [프로그래머스][JAVA][Lv. 1] 제일 작은 수 제거하기 (0) | 2023.08.07 |
|---|---|
| [프로그래머스][JAVA][Lv. 1] 짝수와 홀수 (0) | 2023.08.07 |
| [프로그래머스][JAVA][Lv. 1] 최대공약수와 최소공배수 (0) | 2023.08.06 |
| [프로그래머스][JAVA][Lv. 2] 과제 진행하기 (0) | 2023.08.04 |
| [프로그래머스][Java][Lv. 2] 의상 (0) | 2023.08.03 |