DM Log

[2017 팁스타운] 예상 대진 - Python / JavaScript 본문

알고리즘/프로그래머스

[2017 팁스타운] 예상 대진 - Python / JavaScript

Dev. Dong 2025. 3. 4. 18:12

문제 링크 - https://school.programmers.co.kr/learn/courses/30/lessons/12985

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

[문제 간단 요약]

1. 토너먼트를 진행하는데 A와 B가 만나게 될 라운드를 구하는 문제

[문제 해결 방안]

1. 라운드에서 만난다는 것은 A와 B가 연속된 숫자 이며 둘 중 작은 수가 홀수

2. 하나의 라운드가 끝날 때 마다 각 A와 B의 위치는 현재 위치의 절반

 

[문제 해결 코드 - python]

import math
def solution(n,a,b):
    answer = 0
    A=min(a,b)
    B=max(a,b)
    while True:
        answer += 1
        if (A+1) == B and (A % 2 == 1):
            return answer
        A = math.ceil(A/2)
        B = math.ceil(B/2)
    return answer

 

[문제 해결 코드 - javascript]

function solution(n,a,b)
{
    var answer = 0;
    let A = Math.min(a,b)
    let B = Math.max(a,b)
    while (true) {
        answer += 1
        if ((A + 1 === B) && (A % 2 === 1)) {
            return answer
        }
        A = Math.ceil(A/2)
        B = Math.ceil(B/2)
    }
}