[프로그래머스 Lv2] 카펫 (JavaScript)

loopydoopy·2023년 4월 17일
0

알고리즘

목록 보기
3/14

문제

코드

function solution(brown, yellow) {
    let count = brown+yellow
    
    for(let h = 3 ; h<=brown/2 ; h++){
        if(count%h === 0) {
            let w = count/h
            
            if((w-2)*(h-2) === yellow){
                return [w, h]
            }
        }
    }
}

풀이

  • 전체 타일의 개수 => brown+yellow
  • 변수 h, w는 각각 세로와 가로 크기
  • for문에서 h를 1씩 증가시키면서 count와 나누어 떨어지는 경우에 가로의 크기 구함
  • 갈색 타일은 바깥쪽 1줄 둘러싸고 있으므로 가로 세로 각각 양쪽 타일 2개씩 빼고 곱하면 노란색 타일 개수를 구할 수 있음
    • 위 조건 충족 시 [w, h] return

❗조건 충족 시 바로 return하기 때문에 세로가 가로 크기와 같거나 작다는 조건 고려하여 h로 for문을 돌리기



모두 통과!

profile
일단 해보기🐢

0개의 댓글