728x90
문제 설명
갈색 격자 수 brown과 노란색 격자 수 yellow가 주어질 때, 카펫의 가로와 세로 크기를 구하는 함수를 작성하세요.
제한사항
- brown: 8 이상 5,000 이하인 자연수
- yellow: 1 이상 2,000,000 이하인 자연수
- 가로 길이 ≥ 세로 길이
해결 방법
알고리즘: 완전 탐색 (Brute Force)
구현 방법
- 탐색 범위는 Math.floor(brown / 2) + 2를 기반으로 설정합니다.
- 세로 길이(height)를 3부터 탐색 범위까지 반복하며, 가로 길이(width)를 계산합니다.
- 조건을 만족하면 [width, height]를 반환합니다.
시간 복잡도
- 탐색: O(N)
구현 코드
function solution(brown, yellow) {
const outline = Math.floor(brown / 2) + 2;
for (let height = 3; height <= outline - 3; ++height) {
const width = outline - height;
const center = width * height - brown;
if (center === yellow) {
return [width, height];
}
}
}
'알고리즘' 카테고리의 다른 글
[Javascript] 프로그래머스 - 충돌위험 찾기 (0) | 2025.01.10 |
---|---|
[Javascript] 백준 24508번 나도리팡 (0) | 2025.01.09 |
[Javascript] 백준 1912번 연속합 (0) | 2025.01.07 |
[Javascript] 백준 25957번 단어 우월 효과 (0) | 2025.01.06 |
[Typescript] 백준 27535번 제주 초콜릿 지키기 (0) | 2025.01.05 |