T_era

[JAVA] 완전 탐색 : 카펫 본문

Programing/Programers

[JAVA] 완전 탐색 : 카펫

블스뜸 2025. 4. 23. 17:09

1. 문제 내용

요약
테두리는 brown 안에는 yellow인 카펫이 있는데 brown의 개수와 yellow의 개수를 입력받으면 만들어지는 카펫의 가로길이와 세로길이를 출력하라
단, 세로길이는 가로길이보다 작거나 같다

2. 접근방법
첫번째 줄의 경우 무조건 brown이 채워지니 brown이 첫줄에 3개(가운데 yellow가 들어가기 시작하는 경우)를 채운 시점에서부터 하나씩 경우를 확인해서 brown과 yellow를 정확히 쓰는 경우를 찾아보자

3. 구현 과정

class Solution {
    public int[] solution(int brown, int yellow) {

        for(int i = 3; i <= brown / 2; i++){
            int tb = i * 2;
            int y = (brown - tb) / 2 + 2;
            if(i >= y && ((brown - tb) / 2) * (i - 2) == yellow){
                return new int[]{i, y};
            }
        }

        return new int[]{0,0};
    }
}

 첫번째줄이 최대 brown/2개 들어갈 수 있으니 3개부터 brown/2개까지 탐색해서 사용개수가 정확히 떨어지는 시점을 반환한다

4.결과

'Programing > Programers' 카테고리의 다른 글

[JAVA] DFS(깊이우선탐색) : 타겟넘버  (0) 2025.04.23
[JAVA] 완전탐색 : 피로도  (0) 2025.04.23
[JAVA] 완전 탐색 : 소수 찾기  (0) 2025.04.23
[JAVA] DP : 등굣길  (1) 2025.04.22
[JAVA] DP : 정수 삼각형  (0) 2025.04.22