문제
https://www.acmicpc.net/problem/5597
1부터 30까지 학생 번호 중 제출하지 않은 학생 번호를 찾는 문제였다.
문제 풀이
1. 배열로 풀기
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
boolean[] submitted = new boolean[31];
//총 28명의 학생 번호를 입력받고 해당 번호의 인덱스를 true로 바꿈
for (int i = 0; i < 28; i++) {
int num = scanner.nextInt();
submitted[num] = true;
}
//1번부터 30번까지 반복하면서 아직 false인 인덱스를 찾음
for (int j = 1; j <= 30; j++) {
if (!submitted[j]) {
System.out.println(j);
}
}
}
}
2. set으로 풀기
import java.util.HashSet;
import java.util.Set;
import java.util.Scanner;
public class Main{
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
Set<Integer> set = new HashSet<>();
for(int i=0;i<28;i++){
int num=scanner.nextInt();
set.add(num);
}
for(int j=1;j<=30;j++){
if (set.contains(j)){
continue;
}else{
System.out.println(j);
}
}
}
}
문제 조건에 따르면 출석 번호에 중복이 없다고 했기 때문에 Set을 사용했다.
https://yje44428.tistory.com/19
[JAVA]List, Set, Map 컬렉션(Collection)
컬렉션 프레임워크란?컬렉션(Collection)은 다수의 데이터를 효율적으로 관리하기 위한 데이터 구조와 알고리즘의 집합이다. Java의 컬렉션 프레임워크는 데이터의 저장, 검색, 수정,
yje44428.tistory.com
'코딩테스트 > 백준' 카테고리의 다른 글
[백준/JAVA]10811번 바구니 뒤집기 (0) | 2025.01.13 |
---|---|
[백준/JAVA]3052번 나머지 (0) | 2025.01.10 |
[백준/JAVA]10818번 최소, 최대 (0) | 2025.01.09 |
[백준/JAVA]10871번 X보다 작은 수 (0) | 2025.01.09 |
[백준/JAVA]10807번 개수 세기 (0) | 2025.01.09 |