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

김개발·2021년 8월 12일
0

프로그래머스

목록 보기
15/42

문제 푼 날짜 : 2021-08-12

문제

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

접근 및 풀이

해당 라운드의 번호에서 다음 라운드 번호를 구했을 때, A, B가 값이 같아진다면 해당 라운드에서 맞붙게 되는 것이므로 값이 같아질 때까지 반복해 준다.
제한사항에서 N이 항상 2의 지수승으로 주어지기 때문에 a = (a + 1)/2 와 같이 값을 구할 수 있다.

N : 21 이상 220 이하인 자연수 (2의 지수 승으로 주어지므로 부전승은 발생하지 않습니다.)

코드

#include <iostream>

using namespace std;

int solution(int n, int a, int b)
{
    int answer = 0;

    while (a != b) {
        a = (a + 1)/2;
        b = (b + 1)/2;
        answer++;
    }
    return answer;
}

결과

피드백

쉽게 생각하는 연습도 필요하다.

profile
개발을 잘하고 싶은 사람

0개의 댓글