반응형
https://programmers.co.kr/learn/courses/30/lessons/12985
풀이
백준에도 이 문제랑 동일한 문제가 있습니당..
(1,2)는 다음 라운드에서 1이, (3, 4)는 다음 라운드에서 2가 되는데요.
여기서 규칙이 하나 나옵니다.
다음 라운드에 배정되는 숫자 = (현재 숫자 + 1) / 2
따라서 이 규칙을 이용해 다음 라운드에 배정되는 수가 서로 동일해질 때까지 반복하고 동일해질 때 까지 몇번을 반복한지 세주면 됩니다.
<c++ 코드>
#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;
}
<Java 코드>
class Solution
{
public 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;
}
}
728x90
반응형
'알고리즘 > PS - 프로그래머스' 카테고리의 다른 글
[프로그래머스 - C++] 거리두기 확인하기 (0) | 2021.07.23 |
---|---|
[프로그래머스 - C++] 풍선 터트리기 (0) | 2021.07.23 |
[프로그래머스 - C++] 자물쇠와 열쇠 (0) | 2021.07.12 |
[프로그래머스 - C++] 단어 변환 (0) | 2021.07.10 |
[프로그래머스 - C++] 불량 사용자 (0) | 2021.07.09 |