728x90
토너먼트 문제
https://www.acmicpc.net/problem/1057
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | #include <stdio.h> int main(void){ int totalmember; int imm, kim; int count=0; scanf("%d %d %d", &totalmember, &kim, &imm); if (totalmember < kim || totalmember < imm){ count = -1; } else{ while (kim != imm){ kim = (kim + 1) / 2; imm = (imm + 1) / 2; count++; } } printf("%d\n", count); return 0; } | cs |
<문제를 푼 요령>
- 처음 김지민과 임한수의 번호가 전체 사람의 수보다 큰지 안 큰지 걸러준다.
- 토너먼트는 2명이 1명이 되므로 다음 라운드에서 인원을 축소시키면서 새로운 인원으로 만들 수 있다.
- 즉 두 수에 1을 더해서 2로 나눈값이 같아질때 까지 진행한다.
- 이 같아질때 까지의 횟수를 카운트 하면 된다.
728x90
'Algorithm > 수학' 카테고리의 다른 글
[백준][1978번][수학] 소수찾기 (0) | 2016.03.27 |
---|---|
[백준][1446번][수학] 지름길 (0) | 2016.03.23 |
[백준][1788번][수학] 피보나치 수의 확장 (0) | 2016.03.23 |
[백준][1735번][유클리드 호제법] 분수 합 (0) | 2016.03.23 |
[백준][1790번][수학] 수 이어 쓰기 2 (2) | 2016.03.22 |
댓글