Skip to content

Latest commit

Β 

History

History

P14425

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
Β 
Β 
Β 
Β 
Β 
Β 

[baekjoon-14425] λ¬Έμžμ—΄ 집합

image

더 효율적인 μ•Œκ³ λ¦¬μ¦˜ μƒκ°ν•˜κΈ°

λ³Έ λ¬Έμ œλŠ” λŒ€μƒ λ¬Έμžμ—΄μ΄ λ¬Έμžμ—΄ 집합 내에 μžˆλŠ”μ§€ 일일이 κ²€μ‚¬ν•΄λ³΄λŠ” μˆ˜λ°–μ— μ—†λ‹€.

μ²˜μŒμ—λŠ” λ‹€μŒκ³Ό 같이 O(N*M) 으둜 ν’€μ—ˆλ‹€. μ‹œκ°„ μ œν•œμ΄ 2초이고, Nκ³Ό M의 μ΅œλŒ“κ°’μ€ 10000이기 λ•Œλ¬Έμ— 문제 μ—†μ—ˆλ‹€.

String S = new String[N];
for (int i = 0; i < N; i++) S[i] = br.readLine();

int ans = 0;
for (int i = 0; i < M; i++) {
    String s = br.readLine();
    for (int j = 0; j < N; j++) {
        if (s.equals(S[j])) ans ++;
    }
}

이 λ•Œ 닡은 λ§žμ•˜μœΌλ‚˜ μ‹œκ°„ 효율이 쒋지 μ•Šμ€ 것 κ°™μ•„ λ‹€λ₯Έ μ½”λ“œλ₯Ό μ°Έκ³ ν•˜μ˜€κ³ , Java Collections의 HashSet을 μ΄μš©ν•˜λ©΄ μ‹œκ°„ λ³΅μž‘λ„λ₯Ό 크게 쀄일 수 μžˆλ‹€λŠ” 것을 μ•Œκ²Œ λ˜μ—ˆλ‹€.

HashSet의 Add, Contains μ—°μ‚°μ˜ μ‹œκ°„ λ³΅μž‘λ„λŠ” λͺ¨λ‘ O(1) 이닀. λ”°λΌμ„œ λ‹€μŒκ³Ό 같이 μ½”λ“œλ₯Ό μž‘μ„±ν•˜λ©΄ 더 쒋은 μ½”λ“œκ°€ 될 수 μžˆκ² μ§€ !!

HashSet<String> hs = new HashSet<>();
while (N-- > 0) hs.add(br.readLine());

int ans = 0;
for (int i = 0; i < M; i++)
    if (hs.contains(br.readLine())) ans ++;

image

μ‹œκ°„ λ³΅μž‘λ„λ₯Ό 2648ms μ—μ„œ 424ms둜 쀄일 수 μžˆλ‹€.