자바 백준 5597번
브론즈 5
https://www.acmicpc.net/problem/5597
문제 보기
분류: 구현
문제 풀기
HashSet 을 이용하여 28 개의 번호를 저장하고 HashSet에 없는 번호를 출력한다.
HashSet 의 size() 가 28 이 될때까지 숫자 입력을 받는다.
1 부터 30 까지 숫자를 Set<Integer> 의 contains() 를 이용하여 있는지 없는지를 판단하고 만약 없다면 LIst 에 담는다.
List<Integer> missingNumbers 에 담긴 두 개의 숫자를 출력한다.
코드 보기
import java.util.Scanner;
import java.util.Set;
import java.util.HashSet;
import java.util.List;
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
// 28개 번호 입력 받기
Set<Integer> numbers = new HashSet<>(); // 입력 받을 HashSet 지정
while (numbers.size() < 28) { // HashSet에 28개의 번호가 저장될때까지 반복
int number = sc.nextInt(); // 번호 입력
numbers.add(number); // Set에 입력된 번호 추가
}
// System.out.println(numbers); // TEST PRINT
// 없는 번호 찾기 메서드
List<Integer> result = findMissingNumbers(numbers);
// 번호 2개 결과 출력
System.out.println(result.get(0));
System.out.println(result.get(1));
}
public static List<Integer> findMissingNumbers(Set<Integer> numbers) {
// List에 없는 번호를 저장
List<Integer> missingNumbers = new ArrayList<>(); // 번호 저장할 List 생성
for (int i = 1; i <= 30; i++) { // 1부터 30까지 대입
if (!numbers.contains(i)) { // numbers에 저장된 번호가 없다면
missingNumbers.add(i); // 없는 번호 List에 추가
}
}
return missingNumbers; // 없는 2개의 번호가 담긴 List 반환
}
}
'공부하기 > 백준' 카테고리의 다른 글
[Java] 백준 풀기 3003 - 킹, 퀸, 룩, 비숍, 나이트, 폰 (0) | 2023.06.28 |
---|---|
[Java] 백준 풀기 2908 - 상수 (0) | 2023.06.27 |
[Java] 백준 풀기 11022 - A+B 8 (0) | 2023.06.24 |
[Java] 백준 풀기 25314 - 코딩은 체육과목 입니다 (0) | 2023.06.23 |
[Java] 백준 풀기 2525 - 오븐 시계 (0) | 2023.06.22 |