문제 내용은 입력으로 들어올 사람 숫자 수와 진행할 게임을 받게 되는데, 임스는 모든 게임에 참가해야 하므 게임 플레이에 필요한 수는 적혀진 값에 -1을 해야 한다는 것을 기억하고, 아이디는 중복되지 않고 한번 게임을 하면 다시 게임을 할 수 없으므로 복잡하게 생각할 필요가 없다
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashSet;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String[] split = br.readLine().split(" ");
HashSet<String> set = new HashSet<>();
int div = 0;
if (split[1].equals("Y")) {
div = 1;
} else if (split[1].equals("F")) {
div = 2;
} else {
div = 3;
}
for (int i = 0; i < Integer.parseInt(split[0]); i++) {
set.add(br.readLine());
}
System.out.println(set.size() / div);
}
}
문제를 풀어보면 먼저 참가자 수와 게임 종류를 split으로 쪼개 배열에 담아준 뒤, 게임 종류에 맞춰서 나눌 값을 지정해주는데 임스는 모든 게임에 참가하므로 -1를 해서 지정해주자
이후 입력에서 왼쪽에 들어온 값 만큼 반복문을 돌려주면서, 참가자를 모두 넣어줘야 하는데 중복을 허용하지 않으므로 Set에 모두 넣어주고 난 뒤
set을 게임 수 만큼 나눠주면 최대 몇 번이나 게임을 할 수 있는지 구할 수 있게 된다
Leave a Reply