본문 바로가기

Programmers

[프로그래머스][JAVA]Lv. 2 - 카펫

https://school.programmers.co.kr/learn/courses/30/lessons/42842

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

public int calculate(int brown, int yellow, int height) {
    int width = yellow + 2;
    if (brown == width*2 + height*2) {
        return width;
    }

    return 0;
}

높이를 1 ~ yellow까지 높여가면서 계산한 크기와 brown의 크기가 일치했을 때 가로 길이를 return

그리고 가로와 세로의 겹치는 두 부분을 세로에 더해주어 정답으로 return

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

    public int calculate(int brown, int yellow, int height) {
        int width = yellow + 2;
        if (brown == width*2 + height*2) {
            return width;
        }

        return 0;
    }
}