728x90
반응형
오늘의 학습 키워드
- 완전 탐색
오늘의 회고
1. 문제
2. 해결 방안
public static int[] solution(int brown, int yellow) {
int answer[] = new int[2]; // 가로, 세로
int sum = brown + yellow;
for(int i=3; i<sum; i++) { // 세로 3 이상
int j = sum / i; // i:세로, j:가로
if((sum % i != 0) || (j < 3)) continue; // 가로 3 이하이면 해당 X
// 옐로우 크기가 일치하면 리턴
if(((j-2)*(i-2)) == yellow) {
answer[0] = j;
answer[1] = i;
return answer;
}
}
return answer;
}
- 옐로우+갈색 합의 약수를 찾아 (가로,세로)로 나올 수 있는 값을 찾는다.
- 옐로우가 최소 1칸이라면 가로, 세로 모두 3 이상이어야 한다. -> 가로, 세로 탐색 시 각 값이 3 이상이어야 한다
- 옐로우는 중앙에 차지하고 갈색은 무조건 사이드 라인 1줄만 놓여져있다 -> 옐로우 크기를 수식화할 수 있다
- 옐로우 크기를 수식화한 식과 옐로우 크기가 일치하면 리턴한다.
3. 피드백
- 약수로 경우의 수까지 뽑았으나 그 뒤에 어떻게 해야할지 생각이 안났다. 가로,세로가 3 이상이어야 한다는 것, 옐로우 크기를 일치하면 리턴 하는 것을 캐치한다면 잘 풀 수 있는 문제 같다.
728x90
반응형
'알고리즘' 카테고리의 다른 글
[알고리즘/Programmers] LV2. 전력망을 둘로 나누기 (Java) (0) | 2024.07.12 |
---|---|
[알고리즘/Programmers] LV2. 피로도 (Java) (0) | 2024.07.09 |
[알고리즘/Programmers] LV2. 다리를 지나는 트럭 (Java) (0) | 2024.07.04 |
[알고리즘/Programmers] LV1. 최소직사각형 (Java) (1) | 2024.06.13 |
[자료구조/Java] 자바 Heap 사용 방법 (0) | 2024.05.24 |