티스토리 뷰

프로그래머스 42842번 - 카펫

프로그래머스 42842번 - https://programmers.co.kr/learn/courses/30/lessons/42842

 

요구사항

1. 테두리 1줄은 갈색, 중앙에는 노란색으로 칠해져 있는 카펫의 갈색과 노란색으로 색칠된 격자의 개수가 주어진다.

2. 갈색과 노란색의 색칠된 격자의 수를 통하여 전체 카펫의 가로, 세로 크기를 순서대로 반환하여라.

 

요구사항 분석 및  풀이과정

1. 카펫의 가로 길이가 m, 세로의 길이가 n인 카펫의 노란색으로 색칠된 격자의 개수는 m-2 * n-2 개다. 

2. 갈색으로 색칠된 격자의 개수는 m*n - (m-2)*(n-2) 개이다.

3. 근의 공식을 이용하여 m, n을 구하면 다음과 같다.

 

d = sqrt(((brown + 4)/2)^2 - 4 * (brown + yellow))

m = (brown + 4 + 2 * d) / 4

n = (brown + 4 - 2 * d) / 4

 

소스코드 작성

class Solution {
    
    public int[] solution(int brown, int yellow) {
        int d = (int)Math.sqrt(Math.pow((brown + 4)/2, 2) - 4 * (brown + yellow));
        return new int[] { (brown + 4 + 2*d) / 4, (brown + 4 - 2*d) / 4};
    }
}

 

결과

 

소스코드 깃허브 주소

링크

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함