문제 링크
programmers.co.kr/learn/courses/30/lessons/12985
C++ 풀이
#include <iostream>
#include <math.h>
using namespace std;
int get_nextN(int currentN) {
if (currentN % 2 == 0)
return currentN / 2;
else
return (currentN + 1) / 2;
}
int solution(int n, int a, int b)
{
int answer = 1;
//두 참가자의 번호 차이가 1이고, 더 높은 번호가 2의 배수여야 서로 붙을 수 있음
while (!(abs(a - b) == 1 && max(a,b) % 2 == 0)) {
a = get_nextN(a);
b = get_nextN(b);
answer++;
}
return answer;
}
반응형
'알고리즘 · 코딩' 카테고리의 다른 글
[백준 13458번] 시험 감독 (0) | 2021.04.23 |
---|---|
[백준 14499번] 주사위 굴리기 (0) | 2021.04.22 |
[프로그래머스] 음양 더하기 (0) | 2021.04.22 |
[프로그래머스] 괄호 회전하기 (0) | 2021.04.21 |
[백준 14891번] 톱니바퀴 (0) | 2021.04.20 |