반응형
문제출처
https://www.acmicpc.net/problem/1057
문제풀이
/**
* 다음라운드의 자신의 번호 = (현재 자신의 번호 + 1) / 2
* ==> int형 기준
* 다음라운드의 번호가 같다면 break해준다.
* Ex) 7, 8 번 매칭이라면 (7+1)/2 = 8, (8+1)/2 = 8 이므로 1라운드에 매칭하는 것
*/
소스코드
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | #include <iostream> using namespace std; int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int n, kim, lim; cin>>n>>kim>>lim; int round=1; while(n) { if((kim+1)/2 == (lim+1)/2) break; kim = (kim+1)/2; lim = (lim+1)/2; round++; n/=2; } if(!n) round=-1; cout<<round<<"\n"; return 0; } | cs |
반응형
'Algorithm' 카테고리의 다른 글
[BOJ 2675] 문자열 반복 (0) | 2019.04.15 |
---|---|
[BOJ 13458] 시험감독 (0) | 2019.04.15 |
[BOJ 1094] 막대기 (0) | 2019.04.15 |
[BOJ 11718] 그대로 출력하기 (0) | 2019.04.15 |
[SWEA 1244] 최대 상금 (4) | 2019.02.27 |