문제 풀이/[JAVA_자바] 백준

[JAVA / 자바] 백준(BOJ) 1920번 - 수 찾기 (실버 4)

Seunghyun_KO 2022. 4. 4. 09:00
728x90
반응형

 문제 

N개의 정수 A [1], A [2], …, A [N]이 주어져 있을 때, 이 안에 X라는 정수가 존재하는지 알아내는 프로그램을 작성하시오.


 입력 

첫째 줄에 자연수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 N개의 정수 A [1], A [2], …, A [N]이 주어진다. 다음 줄에는 M(1 ≤ M ≤ 100,000)이 주어진다. 다음 줄에는 M개의 수들이 주어지는데, 이 수들이 A안에 존재하는지 알아내면 된다. 모든 정수의 범위는 -231 보다 크거나 같고 231보다 작다.


 출력 

M개의 줄에 답을 출력한다. 존재하면 1을, 존재하지 않으면 0을 출력한다.


 


 문제 접근 방법 

이번 문제는 원소를 저장하고 해당 원소의 저장 유무를 묻는 문제이다. 따라서 중복 여부, 순서가 상관이 없고 저장여부를 묻는 연산이 많을 것으로 예상되므로 HashSet클래스가 적합한 문제이다.

따라서 두 번째 줄 원소를 HastSet에 저장하고, 네 번째 줄 원소를 HashSet에서 저장 유무를 판단하여 StringBuilder자료형에 저장해두어 마지막에 출력만 해주면 해결된다.


 JAVA 코드 풀이 

 코드 실행 결과 


 후기 

StringBuilder를 사용하는 이유는 출력을 한 숫자마다 계속해주는 것보다 비교적 삭제, 수정, 삽입 연산이 수월하기 때문에 StringBuilder로 모든 결괏값을 모아 한번에 출력하는 것이 좋다고 생각했다.


 문제 원본 

https://www.acmicpc.net/problem/1920

 

1920번: 수 찾기

첫째 줄에 자연수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 N개의 정수 A[1], A[2], …, A[N]이 주어진다. 다음 줄에는 M(1 ≤ M ≤ 100,000)이 주어진다. 다음 줄에는 M개의 수들이 주어지는데, 이 수들

www.acmicpc.net

 알고리즘 분류 

 

728x90
반응형