카펫
문제정의
카펫의 모양이 노란색이 중앙 그 테두리를 갈색이 감싸는 형태이다. 갈색과 노란색 타일이 주어질 때 이 카펫의 모양을 만들기 위한 가로, 세로의 길이를 구하는 문제이다.
문제풀이
전체 코드는 다음과 같다. 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
26package level2;
public class Carpet {
//프로그래머스 문제풀이 level2 카펫
public static void main(String[] args) {
int brown = 10;
int yellow = 2;
int[] answer = new int[2];
int sum = (brown+4)/2;
int h = 3, w = sum -3;
while(w >= h)
{
if((h-2)*(w-2) == yellow)
{
answer[0] = w;
answer[1] = h;
break;
}
h++;
w--;
}
}
}
이 문제의 시간복잡도는 w의 초기 길이를 n이라 할 때, \(O(n)\)이다.