Algorithm/Implement

20291번/ νŒŒμΌμ •λ¦¬/ λ”•μ…”λ„ˆλ¦¬

μ •ν˜Έλ‚˜ 2025. 1. 5. 23:11

πŸ“• 문제

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

 

 

πŸ“„ λ‚΄κ°€ μƒκ°ν•œ 풀이

λ”•μ…”λ„ˆλ¦¬ μ‚¬μš© 생각 λͺ»ν•¨

 

πŸ’» λ‚΄ μ½”λ“œ

 

# ν™•μž₯자 λ³„λ‘œ ν™•μž₯자 이름과 갯수 좜λ ₯
# ν™•μž₯자 이름 μ‚¬μ „μˆœμœΌλ‘œ 좜λ ₯
# λ”•μ…”λ„ˆλ¦¬ μ΄μš©ν•˜κΈ°
import sys

n = int(input())


# λ”•μ…”λ„ˆλ¦¬ 생성, key: ν™•μž₯자, value : ν™•μž₯자 λ‚˜μ˜¨ 횟수
cnt = {}

for _ in range(n):
    file = sys.stdin.readline().rstrip()

# 였λ₯Έμͺ½λΆ€ν„° .을 κΈ°μ€€μœΌλ‘œ μ΅œλŒ€ 1개 λΆ„λ¦¬ν•΄μ„œ ν™•μž₯자 μΆ”μΆœ
    _,extension = file.rsplit('.', 1)

    if extension in cnt:
        cnt[extension] += 1
    else:
        cnt[extension] = 1
    

for extension in sorted(cnt.keys()):
    print(extension, cnt[extension])

 

πŸ“ 참고자료

 

☺️ μƒˆλ‘œ μ•Œκ²Œ 된 지식

1. λ”•μ…”λ„ˆλ¦¬μ— κ°’ μΆ”κ°€

 

my_dict = {}  # 빈 λ”•μ…”λ„ˆλ¦¬ 생성

# κ°’ μΆ”κ°€
my_dict['key1'] = 10
my_dict['key2'] = 20

# κ°’ μ—…λ°μ΄νŠΈ
my_dict['key1'] = 15

print(my_dict)

 

{'key1': 15, 'key2': 20}

 

 

2. keys()ν•¨μˆ˜ : λ”•μ…”λ„ˆλ¦¬μ˜ λͺ¨λ“  ν‚€ λ°˜ν™˜

리슀트처럼 μ‚¬μš© κ°€λŠ₯

 

my_dict = {'a': 1, 'b': 2, 'c': 3}

# keys() μ‚¬μš©
keys = my_dict.keys()
print(keys)
dict_keys(['a', 'b', 'c'])

3. rsplit() ν•¨μˆ˜

rsplit('.'   , 1 )

였λ₯Έμͺ½μ—μ„œλΆ€ν„° ν™•μΈν•΄μ„œ . κΈ°μ€€μœΌλ‘œ λ¬Έμžμ—΄ λΆ„λ¦¬ν•˜κΈ°, μ΅œλŒ€ 1λ²ˆκΉŒμ§€

 

file.rsplit('.', 1)

#μ˜ˆμ‹œ)'file.txt' → ['file', 'txt'].

 

 

 

file = "example.txt"
_, extension = file.rsplit('.', 1)

print(extension)  # 'txt'

 

  • _λŠ” 'example' κ°’을 λ°›μ•„μ˜€μ§€λ§Œ μ‚¬μš©ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. μ‚¬μš©ν•˜μ§€ μ•Šμ„ 값이닀

-> 파일λͺ…μ—μ„œ ν™•μž₯자λ₯Ό μΆ”μΆœν•˜λ©΄μ„œ 파일λͺ… μ•žλΆ€λΆ„μ€ λ¬΄μ‹œν•˜κΈ° μœ„ν•œ μ½”λ“œμž…λ‹ˆλ‹€

  • extension은 'txt' κ°’을 λ°›μ•„μ„œ ν™•μž₯자둜 μ‚¬μš©ν•©λ‹ˆλ‹€.

 

 

πŸ˜‰ 리뷰