티스토리 뷰
문제
https://www.acmicpc.net/problem/17219
17219번: 비밀번호 찾기
첫째 줄에 저장된 사이트 주소의 수 N(1 ≤ N ≤ 100,000)과 비밀번호를 찾으려는 사이트 주소의 수 M(1 ≤ M ≤ 100,000)이 주어진다. 두번째 줄부터 N개의 줄에 걸쳐 각 줄에 사이트 주소와 비밀번
www.acmicpc.net
풀이
const fs = require("fs");
const filePath = process.platform === "linux" ? "/dev/stdin" : "./input.txt";
let input = fs.readFileSync(filePath).toString().trim().split("\n");
const [N, M] = input[0].split(" ").map(Number);
const passwordWithSite = {};
for(let i = 1; i<=N; i++){
const [site, password] = input[i].split(" ");
passwordWithSite[site] = password;
}
for(let i=N+1;i<=N+M; i++){
const site = input[i];
console.log(passwordWithSite[site]);
}
배열에 각 사이트들을 변수에 할당 후 해당 사이트를 찾을때마다 배열을 탐색한다면 시간복잡도가 O(N)이 될것이다 좀더 효율적으로 O(1)로 만들기 위해 객체 하나를 만들어 key, value로 저장후 해시처럼 site를 kye로 찾아 password를 출력한다.
'Algorithm > 백준' 카테고리의 다른 글
[백준] 1389 - 케빈 베이컨의 6단계 법칙 (Javascript / node) (0) | 2023.11.10 |
---|---|
[백준] 9095 - 1,2,3 더하기 (Javascript / node) (0) | 2023.11.07 |
[백준] 11403 - 경로 찾기 (Javascript / node) (0) | 2023.11.05 |
[백준] 1074 - Z (Javascript / node) (0) | 2023.11.03 |
[백준] 4963 섬의 개수 Javascript (0) | 2023.10.16 |
공지사항
최근에 올라온 글