알고리즘
[백준] 수 찾기(1920)
3 views
문제 설명
백준 수 찾기 문제 풀이(https://www.acmicpc.net/problem/1920)

코드 구현
text
const input =
process.platform === "linux"
? require("fs").readFileSync("/dev/stdin").toString().split("\n")
: require("fs").readFileSync("./input.txt").toString().split("\n");
const arrayString = input[1].split(" ").map((el) => parseInt(el));
const array = input[3].split(" ").map((el) => parseInt(el));
const obj = {};
for (const number of arrayString) {
obj[number] = true;
}
for (const test of array) {
console.log(obj[test] ? 1 : 0);
}
코드 해설
해당 문제는 이진탐색으로 해당 수가 배열에 있는지 찾아 풀면 되는 문제이다.
그러나, 해당 문제는 해쉬(객체를 사용)하여 key 로 접근하여 유/무를 판단하였다.
게시물 중 백준 숫자카드 문제가 있는데, 해당 문제는 이진탐색으로 풀었다. 같은 유형이다.
요약 및 참고사항
- for문으로 모든 경우를 계속 돌게 된다면, timeout 이 된다.
- 모든 경우를 먼저 탐색한 다음, 해쉬화 한 다음 유/무를 판단한다
- 해쉬의 경우 log(1)의 시간이 걸리므로, 탐색의 시간이 거의 없다.
