문제
임스가 미니게임을 같이할 사람을 찾고 있습니다.
플레이할 미니게임으로는 윷놀이 , 같은 그림 찾기 , 원카드 가 있습니다. 각각 2, 3, 4 명이서 플레이하는 게임이며 인원수가 부족하면 게임을 시작할 수 없습니다.
사람들이 임스와 같이 플레이하기를 신청한 횟수 과 임스가 플레이할 게임의 종류가 주어질 때, 최대 몇 번이나 임스와 함께 게임을 플레이할 수 있는지 구하시오.
임스와 여러 번 미니게임을 플레이하고자 하는 사람이 있으나, 임스는 한 번 같이 플레이한 사람과는 다시 플레이하지 않습니다.
임스와 함께 플레이하고자 하는 사람 중 동명이인은 존재하지 않습니다. 임스와 lms0806은 서로 다른 인물입니다.
입력
첫 번째 줄에는 사람들이 임스와 같이 플레이하기를 신청한 횟수 과 같이 플레이할 게임의 종류가 주어진다.
두 번째 줄부터 개의 줄에는 같이 플레이하고자 하는 사람들의 이름이 문자열로 주어진다. 문자열 길이
사람들의 이름은 숫자 또는 영문 대소문자로 구성되어 있다.
출력
임스가 최대로 몇 번이나 게임을 플레이할 수 있는지 구하시오.
예제 입력 1
7 Y
lms0806
lms0806
exponentiale
lms0806
jthis
lms0806
leo020630
예제 출력 1
4
풀이코드
public class B20260213_25757 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
int num = Integer.parseInt(st.nextToken());
String game = st.nextToken();
int result = 0;
Set<String> set = new HashSet<>();
for(int i = 0; i < num; i++) {
set.add(br.readLine());
}
if("Y".equals(game)) {
result = set.size();
} else if("F".equals(game)) {
result = set.size() / 2;
} else if("O".equals(game)) {
result = set.size() / 3;
}
System.out.println(result);
br.close();
}
}
미니게임을 플레이하고자 하는 사람 중 동일한 사람과는 게임하지 않기 때문에 인원수에 카운팅될 필요가 없다.
중복 방지를 위해 Set 자료구조에 저장하여 신청한 인원수만을 구한 뒤 임스를 제외한 게임에 필요한 인원수로 나누어
진행할 수 있는 게임의 횟수를 구할 수 있다.
'알고리즘 > 백준' 카테고리의 다른 글
| [백준]숨바꼭질 1697 (1) | 2024.01.05 |
|---|---|
| [백준]촌수계산 2644 (1) | 2024.01.04 |
| [백준]좋다 1253 (0) | 2023.12.13 |
| [백준] 배열돌리기4 17406 (1) | 2023.12.07 |
| [백준]감시 15683 (2) | 2023.12.06 |