티스토리 뷰
게임 대진표 에서 보던걸 그대로 문제로 옮긴듯
스타 리그로 예를 들면 이영호와 김택용이 각각 다른조에 있는데 몇번만에 둘이 만나서 대결하느냐를 구하는 시뮬레이션 문제
물론 처음부터 같은 조에 있으면 1을 출력할것이다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | #include <iostream> #include <algorithm> #include <memory.h> using namespace std; int n; int main() { cin >>n; int a,b; cin>>a>>b; int count=1; while((int)((double)a/2+0.5) != (int)((double)b/2+0.5) ) //반으로 나눈걸 반올림한게 같은 경우 대결함. { a = a%2==0? a/2:a/2+1; b = b%2==0? b/2:b/2+1; count++; } cout<<count<<endl; return 0; } | cs |
while문 조건은 각각 조를 반으로 나눠서 반올림 한것을 표현한것이다.
c와 c++에서는 반올림을 저런식으로 표현한다고 한다.
1.5~2.0사이의 수에 0.5를 더하게 되면 2.0~2.5가 되는데 여기서 버림( == int로 형변환하는것과 동치)을 해버리면
2가 나온다 즉 1.5~2.0 사이의 숫자를 반올림 한것과 같은 효과
마찬가지로 1.0~1.5미만의 수는 1.5~2.0미만의 수가 될것이고 버림을 할경우 1로 되기때문에 반올림이 된다. 그리고 나서 a 와 b 가 계속 이긴다고 가정했으므로 조 숫자를 반으로 나눠주기만 하면됨
그것만 알면 어렵지 않은 문제
'알고리즘' 카테고리의 다른 글
[c/c++] 문자열 입력 받기 (0) | 2017.08.27 |
---|---|
백준 2608 로마 숫자[올림피아드2004 초등부 5번] (0) | 2017.08.27 |
백준 2606번 바이러스 (bfs/플로이드-와샬 알고리즘) (1) | 2017.08.25 |
백준 2579번 계단 오르기 (2) | 2017.08.25 |
[백준/알고리즘] 1520번 내리막 길 (1) | 2017.08.17 |
댓글
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- javascript
- hydrate
- Action
- webpack
- return type
- Next.js
- react hooks
- state
- storybook
- props
- useRef
- typescript
- await
- es6
- useEffect
- react
- rendering scope
- type alias
- server side rendering
- reactdom
- async
- reducer
- atomic design
- promise
- reflow
- mobx
- design system
- Polyfill
- computed
- Babel
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
글 보관함