tndud0808   3년 전

꽤 테스트데이터 많이 넣어본거 같은데 안돌아가네요..

k명까지 돌을 가져가면 n이 됩니다.

k가 소수이면 소수점은 버리고 남은 정수가 홀수면 SK가, 짝수면 CY가 마지막으로 돌을 가져간거니까 이깁니다.

그래서 int(k)로 확인 해봤는데....

잘은 모르겠는데 틀렸습니다가 뜨네요..

tndud0808   3년 전

혹시 log10 함수에 범위가 있나요?

아시는분은 알려주세요..

koosaga   3년 전

코딩 문제라기 보다는 논리가 틀렸고... log10 함수에는 별다른 범위는 없습니다.

koosaga   3년 전

힌트는 5진법입니다. 

tndud0808   3년 전

혹시 어떤 부분에서 논리가 틀렸는지 알려주실 수 있나요??

A, B가 가져가는 돌을 보면

A 12 -> B 22 -> A 42 -> B 82

으로 번갈아서 가져가고, 총 합을 생각하면 k 번째 까지 더했을 때, N(문제에서 주어지는 n)

an=(2n-1)2=4n-1 이고 an=4n-1=(1*(4k-1))/(4-1)=N 이라 하고 풀어보면 4k=3N+1 인데

k=log43N+1에서 k가 t.xxx… 일 때 t 번째로 가져간 사람까지는 가능하고, 그 다음 사람은 가져갈 수 없으니까,, t가 홀수라면 A, 짝수라면 B 가 승리한 거라고 생각했습니다...

tndud0808   3년 전

혹시 log10에 unsigned long long int 가 안들어가나요?

koosaga   3년 전

가져가야 하는 개수가 그렇게 정해져 있는게 아니고, 4의 지수승이기만 하면 이길 수 있도록 최선을 다해서 가져가주면 됩니다. 

koosaga   3년 전

unsigned long long 넣는건 상관 없을 겁니다 (불안하시면 double로 타입 캐스팅해주세요) 아무튼 제가 아는 풀이는 정수로만 풀 수 있습니다. 

tndud0808   3년 전

아아 그렇군요..

전 저렇게 4를 곱해가면서 돌을 가져가야 하는 줄 알았네요..

감사합니다.

그런데 5진수로 어떻게 하는지 조금만 힌트 더주시면 안될까요??

1 1
4 4
16 31
64 224
256 201

koosaga   3년 전

생각해보니 5진수는 아니네요 ㅠㅠ 

4^k를 5로 나눈 나머지는 1이거나 4입니다. 만약에 상대방이 나머지 1을 내면 무조건 내가 4개를 가져가고. 상대방이 나머지 4를 내면 무조건 내가 1개를 가져간다고 생각해 봅시다. 이러면 무조건 5로 나눈 나머지가 일정하겠죠. 만약에 내가 가지고 있는 돌이 5의 배수가 아니라면, 상대방을 이렇게 골려주면 나는 무조건 0개의 돌을 가질 일은 없게 됩니다. 고로 5로 나눈 나머지에 따라서 답이 결정됩니다. 

처음 시작한 사람도 비슷한 방식으로 상대방을 골려줄 수 있습니다. 먼저 주도권을 잡을 수 있는 사람이 이깁니다. 

koosaga   3년 전

문제가 기억이 안 나서 자잘한 디테일은 틀릴 수 있어요

댓글을 작성하려면 로그인해야 합니다.