-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
prac 1104 #5
Comments
Practice 1104 #1이 문제는 테스트케이스가 여러 개의 소문제로 구성되어 있습니다. 문제의 일부분만 풀어도 부분점수를 얻을 수 있습니다. 이번 문제에서는 Adam Grant의 Give & Take의 상황을 시뮬레이션 하는 것이 목표입니다. 총 N명의 사람들로 이루어진 세계에서 1:1의 상호작용이 여러 번 발생하는데, 각 사람마다 전략이 다릅니다. 구체적인 내용은 아래의 문제들을 참조하세요. Class를 사용하여 문제를 해결하기를 적극적으로 권장합니다. Subproblem 1. Giver & Taker (40pts)이 문제에서 등장하는 사람은 모두 Giver 혹은 Taker입니다. 예를 들어 5명이 있다고 하면 아래와 같이 한 줄에 입력이 주어집니다.
각 사람은 왼쪽부터 순서대로 id를 0부터 N-1까지 가지게 됩니다. 즉, 위의 상황은 0번 사람이 Giver, 1번 사람이 Giver, 2번 사람이 Taker, 3번 사람이 Giver, 4번 사람이 Taker인 상황을 나타냅니다. 같은 Giver(혹은 Taker)라도 id가 다르면 다른 사람입니다. 이후로는 여러 줄에 걸쳐 어떤 사람들이 상호작용하는지가 주어집니다. 각 줄은 1:1 상호작용을 하는 사람 두명의 id를 나타냅니다. 예를 들면 다음과 같습니다.
이는 총 3번의 1:1 상호작용이 있는데, 첫 번째 상호작용은 0번 사람과 1번 사람이, 두 번째 상호작용은 0번 사람과 2번 사람이, 세 번째 상호작용은 2번 사람과 4번 사람이 한다는 것을 의미합니다. 입력은 "done"이라는 sentinel이 주어지기 전까지 계속 받아야 합니다. 각 상호작용마다 두 명의 사람은 각자
이 소문제에서는 Giver와 Taker밖에 없다는 것을 다시 떠올리세요. Giver는 무조건
프로그램은 최종 결과를 다음과 같이 각 사람의 id, type, score를 포함해서 출력해야 합니다. 이때, 점수에 따라 내림차순으로 정렬하고, 점수가 같은 사람끼리는 id에 따라 오름차순으로 정렬하여 출력해주세요.
다음은 문제의 전체 input과 output을 나타낸 것입니다. 나머지는 모두 지금까지 설명한 것과 같으며, 2번째 줄은 이후 소문제를 위한 것으로 여기서는 무시해도 됩니다. Input
Output
Subproblem 2. Matcher (30pts)이 소문제에서는 Matcher라는 타입이 추가됩니다. Matcher는 각 사람별로 그 사람이 직전에 한 행동이 무엇인지를 기억하고 있습니다. Matcher는 상호작용을 할 때 처음 보는 사람에게는
Matcher는 어떤 사람이 직전에 한 행동을 그대로 돌려준다는 것을 명심하세요. 이 소문제까지는 그럴 일이 없지만, 어떤 사람들이 matcher에게 Input
Output
Subproblem 3. Mistakes (30pts)누구나 실수를 합니다. 이 문제에서는 모든 사람이 일정 횟수마다 한 번씩 "실수"를 하여, 자신이 하려던 선택과 반대되는 선택을 합니다. 예를 들어, 3번에 한 번씩 실수하는 Giver가 있다면, 이 사람은 give, give, take, give, give, take... 순서대로 행동하게 됩니다. 이 문제에서는 지금까지 입력에서 사용되지 않았던 2번째 줄을 사용합니다. 2번째 줄에는 사람수와 같은 개수의 0 이상의 정수가 주어집니다. 각각의 숫자는 해당하는 사람이 실수하는 빈도수를 나타냅니다. 실수하는 빈도수가 0이면 실수하지 않습니다. 실수하는 빈도수가 1이면, 모든 선택을 실수합니다. 빈도수가 2이면, 2번에 한번 꼴로 실수합니다. 구체적으로는 다음과 같습니다.
다음과 같은 경우를 봅시다.
Input
Output
|
No description provided.
The text was updated successfully, but these errors were encountered: