728x90
반응형
1. 문제
2. 접근방식
처음에는 LinkedList를 이용(ArrayList 보다 데이터 추가, 삭제가 빨라서) 해서 1~30까지의 값을 저장한 후 입력값들을 제거한 후 정렬을 해서 출력을 하게 개발을 하였는데 이유는 모르겠지만 틀렸다고 통과를 하지 못해서 배열을 이용하는 방법으로 수정하였다.
배열에 1~30까지 boolean false 값(default값)으로 세팅한 후 입력값들을 true로 변경후 false로 되있는 배열의 값들을 출력하게 수정해서 제출하니 통과하였다.
3. 코드
1) 배열 사용
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
public class Main {
public static void main(String[] args) {
try {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(System.out));
boolean num[] = new boolean[31];
for(int i=1; i<=28; i++) {
int index = Integer.parseInt(reader.readLine());
num[index] = true;
}
for(int i=1; i<=30; i++) {
if(!num[i]) {
writer.append(String.valueOf(i) + "\n");
}
}
writer.flush();
writer.close();
} catch (Exception e) {
}
}
}
2) LinkedList 사용(오답)
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.Collections;
import java.util.LinkedList;
public class Main {
public static void main(String[] args) {
try {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(System.out));
LinkedList<String> list = new LinkedList<String>();
for(int i=1; i<=30; i++) {
list.add(String.valueOf(i));
}
for(int i=1; i<=28; i++) {
list.remove(reader.readLine());
}
Collections.sort(list);
for(String str : list) {
writer.append(str + "\n");
}
writer.flush();
writer.close();
} catch (Exception e) {
}
}
}
728x90
반응형
'개발 > 백준알고리즘' 카테고리의 다른 글
15726번_이칙연산_java (0) | 2023.08.06 |
---|---|
2563번_색종이_java (0) | 2022.12.11 |
1912번_연속합_java (0) | 2022.12.08 |
25305번_커트라인_java (0) | 2022.12.08 |
25304번_영수증_java (0) | 2022.12.08 |