본문 바로가기

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;
}
}