남은 숫자
99개의 값을 저장할수 있는 배열 k[0], k[1], k[2], ... , k[98] 이 있다.1부터 100까지의 값이 들어 있는 집합 {1, 2, 3, ..., 100}에서 무작위로 수를 꺼내어 배열에 저장했다.집합에 들어 있는 원소의 수는 100개인 반면, 배열은 값을 99개까지만 저장할 수 있으므로 집합 안에 하나의 숫자가 남았다.남은 것이 어느 수인지 확인할 수 있는 방법은? 조금 오래된 문제이긴 하다. 하나하나 모두 해보는 방법으로 배열안에 숫자를 모두 확인하는 방법이 있지만, 컴퓨터에게 그리 적절한 방법은 아닌 듯 하다. 그리 어렵지 않으니 조금만 생각하면 답을 찾을 수 있을 것이다. 우선, 1부터 100까지의 합은 (1+100)*50으로 5050이다.한편, 배열에 모두 저장되고 숫자가 한개..
더보기
[Python3] 31게임! 필승전략
1부터 31까지 순서대로 번갈아가며 1개 이상 3개 이하의 숫자를 말한다.31을 말하면 게임에서 패배한다. ex) 1, 2, 3 / 4, 5 / 6, 7, 8 / .... / 28, 29, 30 / 31(패배) 내가 먼저 시작한다고 할 때 이 게임을 반드시 이기고 싶다면 어떻게 해야할까? 우선, 상대방이 31을 말하게 할려면 내가 30을 말해야 한다는 것부터 시작하자. 내가 30을 말하기 위해선 내가 26을 말해서 상대방이 27을 말하여 내가 28, 29, 30을 말하거나 상대방이 27, 28를 말해서, 내가 29, 30을 말하거나 상대방이 27, 28, 29를 말하여 내가 30을 말을 하도록 해야한다. 그런식으로 쭉 생각해 나가면 다음 숫자들을 내가 반드시 말해야 한다.2, 6, 10, 14, 18, ..
더보기