반응형
프로그래머스 - 알고리즘 고득점 Kit 완전탐색 편
완전탐색 네 번째 문제입니다.
문제풀이
function solution(brown, yellow) {
const area = brown + yellow;
let w = 0;
let h = 3;
const result = [];
while(true) {
w = Math.floor(area / h);
if(w < h) break;
const yellowArea = (w-2) * (h-2);
if(yellowArea === yellow) {
result.push(...[w,h]);
break;
}
h++;
}
return result;
}
이 코드는 카펫의 테두리 갈색(brown) 격자 수와 내부 노란색(yellow) 격자 수가 주어졌을 때, 전체 카펫의 가로(w)와 세로(h) 크기를 찾는 함수입니다.
주요 로직은:
1. 전체 면적(area)을 구합니다 (brown + yellow)
2. 세로(h)는 최소 3부터 시작 (테두리가 있어야 하므로)
3. 가로(w)는 전체 면적을 세로로 나눈 값
4. 내부 노란색 영역은 (가로-2) × (세로-2)로 계산
5. 계산된 노란색 영역이 주어진 yellow와 같으면 [w, h]를 반환
while문은 가로가 세로보다 작아지기 전까지 세로값을 1씩 증가시키면서 조건을 만족하는 크기를 찾습니다.
반응형
'알고리즘 PS > Javascript' 카테고리의 다른 글
[JavaScript] 모음사전 - 완전탐색 (0) | 2024.11.04 |
---|---|
[JavaScript] 피로도 - 완전탐색 (4) | 2024.10.27 |
[JavaScript] 소수 찾기 - 완전탐색 (0) | 2024.10.17 |
[JavaScript] 모의고사 - 완전탐색 (0) | 2024.10.16 |
[JavaScript] 최소직사각형 - 완전탐색 (0) | 2024.10.15 |