PS

[λ°±μ€€] 20291 파일 정리 with Python

ν˜•μ€€_It's 2022. 1. 26. 22:51
728x90
λ°˜μ‘ν˜•

πŸ“Œ BOJ 20291 파일 정리

πŸ’‘ 쑰건

  1. 바탕화면에 μžˆλŠ” 파일의 개수 N (1 <= N <= 50000)

  2. 파일의 이름은 μ•ŒνŒŒλ²³ μ†Œλ¬Έμžμ™€ 점(.)으둜만 κ΅¬μ„±λ˜μ–΄ μžˆλ‹€.
    점은 μ •ν™•νžˆ ν•œ 번 λ“±μž₯ν•˜λ©°, 파일 μ΄λ¦„μ˜ 첫 κΈ€μž λ˜λŠ” λ§ˆμ§€λ§‰ κΈ€μžλ‘œ μ˜€μ§€ μ•ŠλŠ”λ‹€.
    각 파일의 μ΄λ¦„μ˜ κΈΈμ΄λŠ” μ΅œμ†Œ 3, μ΅œλŒ€ 100이닀.

  3. ν™•μž₯자의 이름과 κ·Έ ν™•μž₯자 파일의 개수λ₯Ό ν•œ 쀄에 ν•˜λ‚˜μ”© 좜λ ₯ν•œλ‹€.
    ν™•μž₯μžκ°€ μ—¬λŸ¬ 개 μžˆλŠ” 경우 ν™•μž₯자 μ΄λ¦„μ˜ μ‚¬μ „μˆœμœΌλ‘œ 좜λ ₯ν•œλ‹€.

  4. ν•΄μ‹œλ§΅ 자료ꡬ쑰 μœ ν˜•μ˜ 문제

πŸ–₯ μ†ŒμŠ€ μ½”λ“œ

from sys import stdin

n = int(stdin.readline())
file_name = {}
for i in range(n):
    data = stdin.readline().rstrip().split('.')
    if data[1] in file_name:
        file_name[data[1]] += 1
    else:
        file_name[data[1]] = 1

res = []
for key, item in file_name.items():
    res.append((key, item))

res.sort()
for i in res:
    print(*i)

πŸ”– 예제 및 μ‹€ν–‰κ²°κ³Ό

예제

8
sbrus.txt
spc.spc
acm.icpc
korea.icpc
sample.txt
hello.world
sogang.spc
example.txt

μ‹€ν–‰κ²°κ³Ό

icpc 2
spc 2
txt 3
world 1

⌨️ 문제 풀이

  1. ν™•μž₯자의 이름과 개수λ₯Ό μ €μž₯ν•  dict μžλ£Œν˜• λ³€μˆ˜ ν•˜λ‚˜λ₯Ό λ§Œλ“ λ‹€.

  2. split() ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•΄ '.'을 κΈ°μ€€μœΌλ‘œ λΆ„λ¦¬ν•œ ν›„ ν™•μž₯자 λͺ…이 dict에 μžˆμ„ 경우 + 1, μ—†μœΌλ©΄ μƒˆλ‘œ μΆ”κ°€ν•œ ν›„ 1값을 λ„£λŠ”λ‹€.

  3. dict_name.items() ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜μ—¬, key, value μŒμ„ res λ¦¬μŠ€νŠΈμ— λ„£κ³  μ •λ ¬ν•œ λ’€ 좜λ ₯ν•œλ‹€.

πŸ’Ύ λŠλ‚€μ 

  1. ν•΄μ‹œλ§΅μ„ μ‚¬μš©ν•΄ κ°„λ‹¨ν•˜κ²Œ ν’€μ—ˆλ˜ λ¬Έμ œμ˜€μŠ΅λ‹ˆλ‹€.
λ°˜μ‘ν˜•