답체크 : http://poj.org/problem?id=3210
프로그램 명: coins
제한시간: 1 초스누피가 동전을 3개 주웠다. 어느날 스누피는 동전을 던져 그것을 모두 앞면 또는 뒷면으로 만들고 싶었다.
몇 번을 해보니까 최소 2 번의 뒤집음을 하지 않고는 모두 앞 또는 뒤로 만들수 없었다.동전은 한번에 하나만 뒤집을수 있고 동전을 한번이상 뒤집을수 있다.
n개의 동전이 있을때 최소의 뒤집음 수 x를 구하여라. 단, n개의 동전이 만들어내는 모든 가짓수에 대해서 x번의 뒤집음을 반드시 해야한다.
예로 3 개의 동전을 던질 경우
- 앞 앞 앞
- 앞 앞 뒤
- 앞 뒤 뒤
- 뒤 뒤 뒤
입력여러개의 입력이 주어진다.
각 입력에 대해 동전의 수 n ( n < 10,000 ) 이 주어지고 , 입력의 끝은 0 이다.
출력각 입력에 대해 최소 뒤집음 의 횟수를 한 줄에 하나씩 출력한다.답이 없는 경우 “No Solution!” 을 출력한다.
입출력 예
입력
2
3
0
출력
No Solution!
제발 풀어뷰ㅏ
프로그램 명: coins
제한시간: 1 초스누피가 동전을 3개 주웠다. 어느날 스누피는 동전을 던져 그것을 모두 앞면 또는 뒷면으로 만들고 싶었다.
몇 번을 해보니까 최소 2 번의 뒤집음을 하지 않고는 모두 앞 또는 뒤로 만들수 없었다.동전은 한번에 하나만 뒤집을수 있고 동전을 한번이상 뒤집을수 있다.
n개의 동전이 있을때 최소의 뒤집음 수 x를 구하여라. 단, n개의 동전이 만들어내는 모든 가짓수에 대해서 x번의 뒤집음을 반드시 해야한다.
예로 3 개의 동전을 던질 경우
- 앞 앞 앞
- 앞 앞 뒤
- 앞 뒤 뒤
- 뒤 뒤 뒤
입력여러개의 입력이 주어진다.
각 입력에 대해 동전의 수 n ( n < 10,000 ) 이 주어지고 , 입력의 끝은 0 이다.
출력각 입력에 대해 최소 뒤집음 의 횟수를 한 줄에 하나씩 출력한다.답이 없는 경우 “No Solution!” 을 출력한다.
입출력 예
입력
2
3
0
출력
No Solution!
제발 풀어뷰ㅏ
기내요
그러니까 요는 n개의 동전이 주어져 있으면 어느 경우의 수든 딱 정확히 특정 숫자에 대해서 뒤집으면 모두 같은 면이 나오게 할 수 있어야 한다는 거고, 그 특정 숫자의 최소값을 구하라는 거군. 없으면 No Solution!을 출력하고. 예를 들어 동전 2개면 0번을 뒤집든, 1번을 뒤집든, 2번을 뒤집든 어떤 경우의 수는 안되는 경우가 있기 때문에 No Solution!인 거고 3개의 동전이면 2번만 뒤집으면 다 되고 이게 최소값이니까 2가 답인 거네.
동전이라는 면에서 이진수라는 걸 먼저 떠올려야 한다. 잠깐 생각 좀 해 볼 게.
근데 HHH, TTT인 경우는 2번 뒤집으면 오히려 망가지지 않나? 이런 경우는 제외?
아 똑같은 걸 또 뒤집으면 되는구나.
이거 짝수인 경우는 답이 없네. 홀수인 경우만 답이 있고.
그 다음 이미 완전히 정렬된 상태에서는 짝수번 뒤집기를 해야 하니까. 답은 무조건 짝수.
http://dblack.tk
커뮤니티 사이트 입니다 많은 이용 부탁 드립니다.