[프로그래머스 level2] 예상 대진표

김예지·2021년 10월 21일
0

문제

https://programmers.co.kr/learn/courses/30/lessons/12985#


문제 풀이

코드

function solution(n,a,b)
{
    let cnt=0;

    while(a!==b){
       a=Math.ceil(a/2);
       b=Math.ceil(b/2);
       cnt++;
    }
    return cnt;
}

문제는 꽤 빨리 파악했는데, while의 조건을 잘못작성해서 헤맸던 문제였다. 아래코드는 실패코드이다.

function solution(n,a,b)
{
    let cnt=1;

    while(a!==1 && b!==1){
       a=Math.ceil(a/2);
       b=Math.ceil(b/2);
       cnt++;
    }
    return cnt;
}

초반에는 이렇게 작성했는데, 코드실행했을때만 정답뜨고 테케에서 다수가 실패로 뜬다. 단순히 나와있는 테케에서만 성공이고 나머지는 실패...
반례는 16 1 5 와같은 케이스를 생각해보면 쉬웠다. 내가 짠 코드는 하나라도 1이면 1을 return하기때문에 당연 틀렸던 것이다. 반례참고
프로그래머스에서 나머지 테케는 비공개하는데, 좀 알려주면 좋겠다🤔 뭐 이것도 예외처리 똑바로 하라는 훈련이겠지

profile
내가 짱이다 😎 매일 조금씩 성장하기🌱

0개의 댓글