[JS]프로그래머스 - 카펫 (Lv.2)

2025. 2. 20. 17:35· [LG 유플러스] 유레카/코딩테스트
목차
  1. 나의 풀이
  2. 더 좋은 풀이

나의 풀이

function solution(brown, yellow) {
    var answer = [];
    for(i = 1; i < brown; i++){
        for(j = i; j < brown; j++){
            if(i*j==brown+yellow && (i-2)*(j-2)==yellow){
                answer[0]=i;
                answer[1]=j;
                break;
            }
        }
    }
    answer.sort((a,b)=>b-a);
    return answer;
}
  • 전체 격자의 개수가 brown + yellow가 맞는지 확인
  • 바깥쪽 brown을 제외한 안쪽 부분이 yellow가 맞는지 확인
  • 맞는지 확인 후 저장
  • 정렬

테스트에서 시간이 오래걸림(모든 i, j를 검사하면서 불필요한 연산 많음)

더 좋은 풀이

function solution(brown, yellow) {
    for (let height = 1; height <= Math.sqrt(brown + yellow); height++) {
        if ((brown + yellow) % height === 0) {
            let width = (brown + yellow) / height;
            if ((width - 2) * (height - 2) === yellow) {
                return [width, height];
            }
        }
    }
}
  • 약수는 짝을 이루어 존재하므로 height ≤ sqrt(total)까지만 확인하면 됨
  • width = total / height 이므로 반복문을 2번 돌리지 않아도 됨
  • total의 약수인지 확인해서 width, height를 찾은 뒤 계산한 노란색 영역이 yellow와 같은지 확인

 

'[LG 유플러스] 유레카 > 코딩테스트' 카테고리의 다른 글

[JAVA]백준 - 17478번 재귀함수가 뭔가요? (실버5)  (0) 2025.02.21
[JAVA]SWEA - 1873. 상호의 배틀필드 (D3)  (0) 2025.02.21
[JS]프로그래머스 - 최댓값과 최솟값 (Lv.2)  (0) 2025.02.20
[입문][JS][02.19] 프로그래머스 코딩테스트  (0) 2025.02.20
[입문][JS][02.16] 프로그래머스 코딩테스트  (0) 2025.02.16
  1. 나의 풀이
  2. 더 좋은 풀이
'[LG 유플러스] 유레카/코딩테스트' 카테고리의 다른 글
  • [JAVA]백준 - 17478번 재귀함수가 뭔가요? (실버5)
  • [JAVA]SWEA - 1873. 상호의 배틀필드 (D3)
  • [JS]프로그래머스 - 최댓값과 최솟값 (Lv.2)
  • [입문][JS][02.19] 프로그래머스 코딩테스트
leeemingyu
leeemingyu
leeemingyu
ye
leeemingyu

블로그 메뉴

  • GitHub
  • Instagram
    전체
    오늘
    어제
    • 전체보기 (68)
      • GDSC (4)
        • 실시간 채팅 구현 (4)
      • [LG 유플러스] 유레카 (63)
        • Today I Learned (37)
        • 코딩테스트 (22)
        • 프로젝트 (4)

    공지사항

    인기 글

    최근 댓글

    최근 글

    hELLO · Designed By 정상우.v4.2.2
    leeemingyu
    [JS]프로그래머스 - 카펫 (Lv.2)
    상단으로

    티스토리툴바

    단축키

    내 블로그

    내 블로그 - 관리자 홈 전환
    Q
    Q
    새 글 쓰기
    W
    W

    블로그 게시글

    글 수정 (권한 있는 경우)
    E
    E
    댓글 영역으로 이동
    C
    C

    모든 영역

    이 페이지의 URL 복사
    S
    S
    맨 위로 이동
    T
    T
    티스토리 홈 이동
    H
    H
    단축키 안내
    Shift + /
    ⇧ + /

    * 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.