Don't be afraid of challenges

[프로그래머스] Lv.2 카펫 - js 본문

이것이 코딩테스트다

[프로그래머스] Lv.2 카펫 - js

초아롱 2024. 4. 25. 14:58
완전탐색

 

모든 경우의 수를 고려하는 탐색 알고리즘 ( 그냥 다찾는다고 보면 된다 )

단순, 비트마스크, 재귀함수, 순연, BFS/DFS 등이 있다.

 

 

완전 탐색 문제

 

https://school.programmers.co.kr/learn/courses/30/lessons/42842

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

문제 이해하기

 

일단 문제에서 brown색 수, yellow색 수만 알고 있고 카펫의 width, height길이를 구해달라고 하고 있다.

 

문제를 이해해보고 규칙을 찾아보자!

 

문제를 읽고 알 수 있는 사실
1.  brown이 yellow보다 차지하는 면적이 크다.
2. width와 height의 길이는 3이상이다.
3. width길이가 height길이보다 더 크다.
4. 위의 그림으로 봤을때 yellow 면적은 (width - 2)*(height-2)이다.
5. 전체면적은 brown + yellow 이다.

* 전체면적을 가지고 width나 height를 찾은 다음 나머지도 구한다. => 완전탐색

 

나의 풀이
function solution(brown, yellow) {
    let sum = brown+yellow;
    for(let h = 3; h<=brown; h++){
        let w = sum / h; // w,h>=3 
        if((w-2)*(h-2) === yellow) return [w,h]; 
    }
}