[코딩테스트] 프로그래머스 42842, 카펫
2022. 7. 17. 17:04ㆍCodingTest
문제
https://school.programmers.co.kr/learn/courses/30/lessons/42842
문제접근
- yellow의 가로의 길이는 최소 1~yellow까지입니다.
- yellow의 가로 길이에 따라서 세로의 길이도 달라집니다.
- yellow의 세로 길이 = yellow 개수 / yellow 가로 길이
- brown는 yellow를 감싸는 형태여야 합니다.
- brown의 가로 길이 = yellow 가로 길이 + 2
- brown의 세로 길이 = yellow 세로 길이 + 2
- yellow의 가로 길이를 1부터 yellow 변수까지 반복하여 yellow 가로 길이에 따른 yellow 세로길이, brown 가로 길이, brown 세로 길이를 계산한다음 입력받은 받은 brown의 개수와 비교하여 일치한다면 해당 카펫의 가로 길이와 세로 길이를 반환합니다.
구현
class Solution {
public int[] solution(int brown, int yellow) {
int[] answer = new int[2];
for(int y_width = 1; y_width <= yellow; y_width++){
int y_height = yellow / y_width;
int b_width = y_width + 2;
int b_height = y_height + 2;
int b = (b_width * b_height) - yellow;
if(b == brown && b_width >= b_height){
answer[0] = b_width;
answer[1] = b_height;
break;
}
}
return answer;
}
public static void main(String[] args){
new Solution().solution(10, 2);
}
}
'CodingTest' 카테고리의 다른 글
[코딩테스트] 프로그래머스 49994, 방문길이 (0) | 2022.07.26 |
---|---|
[코딩테스트] 프로그래머스 92335, k진수에서 소수 개수 구하기 (0) | 2022.07.25 |
[코딩테스트] 프로그래머스 12949, 행렬의 곱셈 (0) | 2022.07.17 |
[코딩테스트] 프로그래머스 64065, 튜플 (0) | 2022.07.15 |
[코딩테스트] 프로그래머스 42839, 소수 찾기 (1) | 2022.07.15 |