문제
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
알고리즘
없음
풀이
참가자의 번호가 아닌 해당 라운드에서 몇번째 대진이라고 생각한다.
만약 A가 10번 참가자였다면 다음 라운드에 5번째 대진으로 갈 것이고,
2501번 참가자였다면 다음 라운드에 1250 번째 대진으로 갈 것이다.
즉, 참가자 번호 a가 홀수라면 다음 대진은 (a / 2 + 1), a가 짝수라면 a / 2 가 된다.
따라서 a와 b가 같은 대진이 될 때까지 대진 횟수를 증가시킨다.
코드
class Solution
{
public int solution(int n, int a, int b)
{
int answer = 0;
while(a != b) {
a = a % 2 == 0 ? a / 2: a / 2 + 1;
b = b % 2 == 0 ? b / 2: b / 2 + 1;
answer++;
}
return answer;
}
}
'Algorithm > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 위장 (Java) (0) | 2022.11.07 |
---|---|
[프로그래머스] 전화번호 목록 (Java) (0) | 2022.11.07 |
[프로그래머스] 영어 끝말잇기 (Java) (0) | 2022.11.07 |
[프로그래머스] 점프와 순간 이동 (Java) (0) | 2022.11.07 |
[프로그래머스] 배달 (Java) (0) | 2022.11.07 |