본문 바로가기

프로그래머스/구현

[구현] 프로그래머스 '예상 대진표' - js

반응형

1. 문제

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

 

프로그래머스

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

programmers.co.kr

2. 코드

처음엔 생각을 잘못해서 b와 a의 차가 1인 경우에만 지지고 볶고... 했었다.. 어떤 경우에는 정답이고 어떤 경우에는 정답이 아니었다. 당연하지!! 조건을 잘 못썼으니 ㅠㅠ 계산도 더 간단하게 할 수 있도록 해주는 메서드가 많은데... 아직 Math 메서드에는 익숙해지지 않아서 잘 안 떠오르나 보다. Math에 익숙해지자.

처음 짠 코드 - 오답!!!!!!!

function solution(n,a,b)
{
    let cnt = 1;
    while(a >= 1){
        if(b - a === 1){
            a = a % 2 ? a / 2 : a / 2 + 1;
            b = b % 2 ? b / 2 : b / 2 + 1;
            cnt++;
        }else break;
    }
    
    return cnt;
}

정답 코드

function solution(n,a,b) {
    let answer = 0;
    //  a와 b가 같아지면 같은 라운드에 있다는 말과 같다.
    while(a !== b) {
        a = Math.ceil(a/2);
        b = Math.ceil(b/2);
        answer++;
    }

    return answer;
}

 

복기

5/22
반응형