728x90
본 알고리즘 풀이는 Routine Study에서 진행하고 있습니다.
저를 포함한 구성원이 대부분 초보이므로, 원하시는분은 언제라도 들어오셔도 좋습니다.
문의는 댓글 바람.
문제 출처 : https://www.acmicpc.net/problem/13414
[접근 방법]
단순하게 NM하면 무조건 시간 초과.
Hash 함수를 이용하여 다시 접근할 때 O(1)이어야 가능.
따라서 HashMap 사용함.
[Java 코드]
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.*;
class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String[] inputs = br.readLine().split(" ");
int numOfStudentsEnrolled = Integer.parseInt(inputs[0]);
int numOfStudent = Integer.parseInt(inputs[1]);
Map<String,Integer> map = new HashMap<>();
String[] students = new String[numOfStudent];
int index = 0;
for (int i = 0; i < numOfStudent; i++) {
String studentNo = br.readLine();
if (map.containsKey(studentNo)) {
students[map.get(studentNo)] = null;
}
students[index] = studentNo;
map.put(studentNo, index);
index++;
}
index = 0;
while (numOfStudentsEnrolled > 0 && index < numOfStudent) {
if (students[index] != null) {
System.out.println(students[index]);
numOfStudentsEnrolled--;
}
index++;
}
}
}
[내 답안 수정하기]
import java.io.*;
import java.util.*;
class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
String[] inputs = br.readLine().split(" ");
int numOfStudentsEnrolled = Integer.parseInt(inputs[0]);
int numOfStudent = Integer.parseInt(inputs[1]);
Map<String,Integer> map = new HashMap<>();
String[] students = new String[numOfStudent];
int index = 0;
for (int i = 0; i < numOfStudent; i++) {
String studentNo = br.readLine();
students[index] = studentNo;
if (map.containsKey(studentNo)) {
students[map.get(studentNo)] = null;
}
map.put(studentNo, index);
index++;
}
index = 0;
while (numOfStudentsEnrolled > 0 && index < numOfStudent) {
if (students[index] != null) {
bw.write(students[index] + "\n");
numOfStudentsEnrolled--;
}
index++;
}
bw.flush();
}
}
728x90
반응형
'알고리즘 문제 풀이 > 구현' 카테고리의 다른 글
백준 - 기상캐스터 (0) | 2022.01.30 |
---|---|
백준 - 경비원 (0) | 2022.01.17 |
백준 - 송이의 카드 게임 (0) | 2021.12.30 |
백준 - 와글와글 숭고한 (0) | 2021.12.28 |
백준 - 카드 뽑기 (0) | 2021.12.28 |