chzhdpahd   9달 전

일단 제가 문제를 잘못 이해했을 수도 있으니 제가 이해한대로 설명도 적어보겠습니다

사용자는 3명이니 t[0] t[1] t[2]에 각각 받아야 하는 카드값을 저장합니다

카드를 s[i]에 받습니다

n개의 카드를 받으면 n-1번을 섞을수 있기 때문에 받자마자 검사하는 1번을 더해서 for문을 n번 돌렸습니다


cardcheck()은 카드를 나눠주며 사용자가 카드를 받을 수 있는지를 체크합니다

3명에게 1장씩 주는걸 1회로 쳐서 n/3회 반복을 합니다.

반복하며 카드가 그 사람이 받아야 할 카드면 f1,2,3을 0->1로 바꾸어줍니다

(f1이 1이면 1번 사용자는 받아야 할 카드를 받았다는 의미로 flag를 사용한거라고 보시면 됩니다)

f1, f2, f3이 모두 1이면 모두 받아야 할 카드를 받았기 때문에 반복문을 멈추고 return을해줍니다

0을 return하면 카드 배분이 되었다는 의미고 -1을 return하면 다시 suffle을 해야한다는 의미입니다


suffle()은 카드 섞는 함수입니다. 한칸씩 밀고 맨마지막은 처음으로 넣어줍니다

suffle을 하면서 count를 하나씩 세주고 위의 과정을 반복합니다

중간에 배분이 완료되면 반복을 멈추고 count값을 출력합니다

마지막까지 배분이 완료되지않으면 check값인 -1을 출력합니다


소스코드로 돌리면 틀렸다고나와요 ㅠㅠ


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