프로그래머스 Lv2 - 카펫 - JAVA
본문 바로가기

알고리즘/프로그래머스

프로그래머스 Lv2 - 카펫 - JAVA

728x90
반응형

안녕하세요 놀이방 사장입니다.

 

이번 포스팅은 프로그래머스 Lv2

카펫 포스팅입니다.

 

이번 문제는 brown과 yellow의 갯수를 보고 카펫의 가로와 세로의 길이를 찾는 문제입니다.

 

풀이)

먼저 넓이 S 는 브라운과 옐로우의 합입니다.

그리고 넓이 공식은 넓이 * 높이입니다.

 

S = brown + yellow = width * height

그리고 yellow는 가운데 있으니깐 옐로의 넓이는 위아래 하니씩 해서 총 -2  양 옆해서 -2

옐로우의 넓이를 구하는 공식은 (width-2) * (height-2)

입니다.

그 후에 브라운의 넓이를 구하는 공식은 S - 옐로우의 넓이

 

옐로우와 브라운의 넓이를 더했을 떄 S랑 같으면 정답입니다.

 

코드를 보시면 더 이해가 잘 되실거에요

class Solution {
    public int[] solution(int brown, int yellow) {
        int[] answer = new int[2];
        int S = brown + yellow;

        for(int height =1; height <S; height ++){
            int width = S/height ;
            int Y = (width -2) * (height-2);
            int B = S-Y;

            if(Y==yellow && B==brown){
                answer[0] = width;
                answer[1] = height;
                break;
            }
        }
        return answer;
    }
}

 

이상으로 카펫 포스팅을 마치겠습니다

반응형