728x90
문제 설명
Leo는 집으로 돌아와서 아까 본 카펫의 노란색과 갈색으로 색칠된 격자의 개수는 기억했지만,
전체 카펫의 크기는 기억하지 못했습니다.
Leo가 본 카펫에서 갈색 격자의 수 brown, 노란색 격자의 수 yellow가 매개변수로
주어질 때 카펫의 가로, 세로 크기를 순서대로 배열에 담아 return 하도록 solution 함수를 작성해주세요.
제한 사항
- 갈색 격자의 수 brown은 8 이상 5,000 이하인 자연수입니다.
- 노란색 격자의 수 yellow는 1 이상 2,000,000 이하인 자연수입니다.
- 카펫의 가로 길이는 세로 길이와 같거나, 세로 길이보다 깁니다.
문제 풀이 방법
- 카펫의 높이는 최소 3이상 이어야 하며 너비보다 작아야 한다.
- 전체 칸수 % 높이가 0으로 나누어 떨어지면 너비를 구하고,
전체 칸수 = 높이 * 너비 이며, 전체 칸 수는 인자로 전달된 brown과 yellow를 더해서 구해준다.
주의 사항
- 너비가 높이와 같거나 더 크므로 이를 주의하며 문제 해결을 해야한다.
코드
function solution(brown, yellow) {
let total = brown + yellow;
for(let h = 3; h<brown; h++) {
if(total % h === 0) {
let w = total / h;
if((h - 2) * (w - 2) === yellow){
return [w, h];
}
}
}
}
728x90
'코딩 테스트 > 프로그래머스 코딩 테스트 연습' 카테고리의 다른 글
스택큐 / 2 / 프린터 (JS) (0) | 2022.06.11 |
---|---|
스택큐 / 2 / 기능개발 (JS) (0) | 2022.06.10 |
완전탐색 / 2 / 소수찾기 (JS) (0) | 2022.06.09 |
완전탐색 / 1 / 모의고사 (JS) (0) | 2022.06.09 |
정렬 / 2 / H-Index (JS) (0) | 2022.06.08 |