‘프로그래머스 코딩테스트 고득점 Kit’ 문제 입니다. 😀
문제 👉 <코딩테스트 연습 - 카펫 | 프로그래머스>
1. 문제
갈색 격자와 노란색 격자의 수를 통해 카펫의 가로/ 세로 크기를 return 하라.
갈색 격자의 수 brown은 8 이상 5,000 이하인 자연수입니다.
노란색 격자의 수 yellow는 1 이상 2,000,000 이하인 자연수입니다.
카펫의 가로 길이는 세로 길이와 같거나, 세로 길이보다 깁니다.

2. 풀이
완전탐색
을 이용한 문제 풀이
- 카펫의 가로 길이 < 갈색 격자의 개수
- 노락색 격자 >= 1 이기 때문에 카펫의 세로 길이 >= 3
- 총 격자의 개수를 카펫의 세로 길이로 나누었을 때 나머지가 있으면 안된다. (격자는 자연수)
3. 코드
class Solution {
public int[] solution(int brown, int yellow) {
int[] answer = new int[2];
int blocks = brown + yellow;
for (int width=3; width<brown; width++) {
if (blocks % width != 0) { continue; }
// 노란색(내부) 격자는 3보다 크거나 같고 가로는 세로보다 크거나 같다.
int height = blocks / width;
if (height < 3 || width < height) { continue; }
// 노란색(내부) 격자 개수 확인
int insideBlocks = (width-2) * (height-2);
if (insideBlocks == yellow) {
answer[0] = width;
answer[1] = height;
break;
}
}
return answer;
}
}
References
🏋🏻 개인적으로 공부한 내용을 기록하고 있습니다.
잘못된 부분이 있다면 과감하게 지적해주세요!! 🏋
'Coding Test > Programmers' 카테고리의 다른 글
[프로그래머스] 조이스틱 [JAVA(자바)] (0) | 2021.11.25 |
---|---|
[프로그래머스] 모의고사 [JAVA(자바)] (0) | 2021.11.25 |
[프로그래머스] 소수 찾기 [JAVA(자바)] (0) | 2021.11.25 |
댓글