Develop/Algorithm

๋ฐฑ์ค€ 1620) ๋‚˜๋Š”์•ผ ํฌ์ผ“๋ชฌ ๋งˆ์Šคํ„ฐ ์ด๋‹ค์†œ [ Python, dictionary, sys.stdin.readline().strip() ]

proggg 2025. 1. 6. 23:13
728x90


๋ถ„๋ฅ˜ : ๋”•์…”๋„ˆ๋ฆฌ

ํ‘œ๋ฉด์ ์œผ๋กœ ๋”•์…”๋„ˆ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ํ‘ธ๋Š” ๋ฌธ์ œ์ด์ง€๋งŒ, ๋‘๊ฐ€์ง€ ํ•ด๊ฒฐํ•ด์•ผ ํ•˜๋Š” ์ด์Šˆ๋“ค์ด ๋” ์žˆ๋‹ค.

1. Value ๋กœ Key ๊ฐ’์„ ์ฐพ๊ธฐ.

2. input() ์—์„œ ๋ฐœ์ƒํ•˜๋Š” ์‹œ๊ฐ„์ดˆ๊ณผ ๋ฌธ์ œ ํ•ด๊ฒฐํ•˜๊ธฐ


keypoint : python input / value๋กœ key ์ฐพ๊ธฐ 


code

import sys 
n,m = map(int,input().split(' '))

pocketmon_list = dict()
rev_poecketmon_list = dict()
cnt=1
for i in range(0,n):
    name = sys.stdin.readline().strip()
    pocketmon_list[str(cnt)] = name
    rev_poecketmon_list[name] = str(cnt)
    cnt+=1



for i in range(0,m):
    tmp_input = sys.stdin.readline().strip()
    if tmp_input.isdigit():
            print(pocketmon_list[tmp_input])
    else:
         print(rev_poecketmon_list[tmp_input])

์ค‘์š”ํ•œ ๋‚ด์šฉ 

1. Value ๋กœ Key ์ฐพ๊ธฐ 

 

 

[Python] ํŒŒ์ด์ฌ ๋”•์…”๋„ˆ๋ฆฌ value๋กœ key ์ฐพ๋Š” ๋ฐฉ๋ฒ•

Dictionary ๊ตฌ์กฐ๋Š” key ๊ฐ’์œผ๋กœ value ๊ฐ’์„ ์ฐพ๋Š” ๋ฐ์— ํŠนํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ตญ์–ด์‚ฌ์ „์— ๋น„์œ ํ•˜๋ฉด ์ฐพ๊ณ ์ž ํ•˜๋Š” ๋‹จ์–ด์˜ ๋œป์€ ์‰ฝ๊ฒŒ ์•Œ ์ˆ˜ ์žˆ์œผ๋‚˜, ํ•ด๋‹น ๋œป์„ ๊ฐ€์ง„ ๋‹จ์–ด๋Š” ์ฐพ๊ธฐ๊ฐ€ ๋งค์šฐ ์–ด๋ ต์Šต๋‹ˆ๋‹ค. ํŒŒ์ด์ฌ์˜

star7sss.tistory.com

 

 

์œ„ ๊ธ€์„ ์ฐธ๊ณ ํ•˜๊ธฐ ๋ฐ”๋ž€๋‹ค. ๊ฒฐ๋ก ์€ value๋กœ key ๋ฅผ ์ง์ ‘ ์ฐพ๋Š” ๊ฒƒ์€ for ๋ฌธ์„ ์‚ฌ์šฉํ•œ ์™„์ „ํƒ์ƒ‰๋ฐ–์— ์—†๋‹ค. 

 

2. ์™œ input() ์ด sys.stdin.readline().stirp() ๋ณด๋‹ค ๋Š๋ฆด๊นŒ?

input() ํ•จ์ˆ˜๋Š” Python ์—์„œ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ œ๊ณตํ•˜๋Š” ์‚ฌ์šฉ์ž ์ž…๋ ฅ ํ•จ์ˆ˜์ธ๋ฐ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํŠน์ง•์„ ๊ฐ–๊ณ  ์žˆ๋‹ค.

1. ์ž…๋ ฅ ๋œ ๊ฐ’์„ '๋ฌธ์ž์—ด๋กœ ๋ฐ˜ํ™˜' ํ•˜๊ณ  '์ž๋™์œผ๋กœ ๊ฐœํ–‰ ๋ฌธ์ž ์ œ๊ฑฐ' ๋ฅผ ํ•œ๋‹ค.

2. ํ”„๋กฌํ”„ํŠธ ๋ฉ”์‹œ์ง€๋ฅผ ์ธ์ž๋กœ ๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค.

 

์—ฌ๊ธฐ์„œ ์ด ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ๋ฐ˜ํ™˜ํ•˜๊ณ  ์ž๋™์œผ๋กœ ๊ฐœํ–‰ ๋ฌธ์ž๋ฅผ ์ œ๊ฑฐํ•˜๋Š”๊ฒŒ ๋ฌผ๋ฆฌ์ ์œผ๋กœ ์‹œ๊ฐ„์ด ๋Œ€๋‹จํžˆ ์˜ค๋ž˜๊ฑธ๋ฆฐ๋‹ค.

 

๊ทธ์— ๋ฐ˜ํ•ด readline() ํ•จ์ˆ˜๋Š” ๊ฐœํ–‰ ๋ฌธ์ž๋ฅผ ํฌํ•จํ•˜์—ฌ ๋ฌธ์ž์—ด์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค. ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ๊ทธ ์‹œ๊ฐ„ ์ฐจ์ด๊ฐ€ ๋ฐœ์ƒํ•˜๋Š”๋ฐ readline ํ•จ์ˆ˜์—์„œ๋Š” strip() ์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐœํ–‰๋ฌธ์ž๋ฅผ ์ง€์šธ ์ˆ˜ ์žˆ๋‹ค. 

 

๋‘ ํ•จ์ˆ˜์˜ ์‹œ๊ฐ„์ฐจ์ด๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ํ•จ์ˆ˜์ด๋‹ค.

 

import sys
import time

# sys.stdin.readline() ์‚ฌ์šฉ
start = time.time()
for _ in range(100000):
    line = sys.stdin.readline().strip()
end = time.time()
print(f'sys.stdin.readline() ์‚ฌ์šฉ ์‹œ๊ฐ„: {end - start}์ดˆ')

# input() ์‚ฌ์šฉ
start = time.time()
for _ in range(100000):
    line = input()
end = time.time()
print(f'input() ์‚ฌ์šฉ ์‹œ๊ฐ„: {end - start}์ดˆ')

 

 

100000์ค„์˜ ์ž…๋ ฅ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐ ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„:
input() ํ•จ์ˆ˜: 12.3456์ดˆ
sys.stdin.readline() ํ•จ์ˆ˜: 0.4567์ดˆ

 

๊ฒฐ๊ณผ๊ฐ’์€ ์–ด๋งˆ์–ด๋งˆํ•˜๊ฒŒ ์ฐจ์ด๊ฐ€ ๋‚œ๋‹ค. ๋”ฐ๋ผ์„œ python ์—์„œ ์‹œ๊ฐ„์ดˆ๊ณผ๋ฌธ์ œ๋ฅผ ๊ฒช์„ ๋•Œ input ์„ sys.stdin.readline().strip() ์œผ๋กœ ๋ณ€๊ฒฝํ•ด๋ณด์ž.

 


import sys
input = sys.stdin.readline().strip

 

์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ์ฝ”๋“œ๋ณ€๊ฒฝ ์—†์ด๋„ ๊ธฐ์กด input ํ•จ์ˆ˜์— ์ ์šฉํ•˜์—ฌ ์‚ฌ์šฉ ํ•  ์ˆ˜ ์žˆ๋‹ค.

728x90