프로그래머스 - 카펫[java]

스브코·2021년 10월 26일

문제 설명 - 스크린샷 출처 프로그래머스

문제 풀이 코드

class Solution {
    public int[] solution(int brown, int yellow) {
        int[] answer = new int [2];
        int total = brown + yellow;
        for(int i = 3; i < total / 3 + 1; i++) {
            if(total % i == 0) {
                int width = total / i;
                if((i - 2) * width - ((i - 2) * 2) == yellow) {
                        answer[0] = width;
                        answer[1] = i;
                    return answer;
                }
            }
        }
        return answer;
    }
}

문제 제한 사항에서 힌트를 찾을 수 있다.

  • 카펫의 가로길이는 세로길이와 같거나 길다.
  • 갈색 격자의 최소 수 = 8, 노란색 격자의 최소 수 = 1

위 두개의 힌트로 카펫의 높이는 무조건 3 이상이여야 한다는 것과 answer[0] > answer[1]이다는 것을 알아 낼수 있다.

profile
익히는 속도가 까먹는 속도를 추월하는 그날까지...

0개의 댓글