๊ธฐ๋ก๋ฐฉ

BOJ_1620 : ๋‚˜๋Š”์•ผ ํฌ์ผ“๋ชฌ ๋งˆ์Šคํ„ฐ ์ด๋‹ค์†œ ๋ณธ๋ฌธ

CodingTest/Python

BOJ_1620 : ๋‚˜๋Š”์•ผ ํฌ์ผ“๋ชฌ ๋งˆ์Šคํ„ฐ ์ด๋‹ค์†œ

Soom_1n 2022. 8. 26. 23:43

๐Ÿ‘‰ ๋ฌธ์ œ๋งํฌ

 

1620๋ฒˆ: ๋‚˜๋Š”์•ผ ํฌ์ผ“๋ชฌ ๋งˆ์Šคํ„ฐ ์ด๋‹ค์†œ

์ฒซ์งธ ์ค„์—๋Š” ๋„๊ฐ์— ์ˆ˜๋ก๋˜์–ด ์žˆ๋Š” ํฌ์ผ“๋ชฌ์˜ ๊ฐœ์ˆ˜ N์ด๋ž‘ ๋‚ด๊ฐ€ ๋งž์ถฐ์•ผ ํ•˜๋Š” ๋ฌธ์ œ์˜ ๊ฐœ์ˆ˜ M์ด ์ฃผ์–ด์ ธ. N๊ณผ M์€ 1๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™๊ณ , 100,000๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์ž์—ฐ์ˆ˜์ธ๋ฐ, ์ž์—ฐ์ˆ˜๊ฐ€ ๋ญ”์ง€๋Š” ์•Œ์ง€? ๋ชจ๋ฅด๋ฉด

www.acmicpc.net



๐Ÿ”ธ ๋ฌธ์ œ ๋ถ„์„ ๐Ÿ”ธ

  • ํฌ์ผ“๋ชฌ ์ด๋ฆ„์„ ์ž…๋ ฅ๋ฐ›๊ณ , ๋ฒˆํ˜ธ ํ˜น์€ ํฌ์ผ“๋ชฌ ์ด๋ฆ„์œผ๋กœ ๊ฒ€์ƒ‰, ์ถœ๋ ฅํ•œ๋‹ค.

๐Ÿ”ธ ์ฝ”๋“œ ๐Ÿ”ธ

import sys

n, m = map(int, sys.stdin.readline().split())

book = {}
number = 1
for i in range(n):
    poket = sys.stdin.readline().rstrip()
    if poket not in book:
        book[poket] = number
        number += 1

book_reverse = dict(map(reversed, book.items()))
for i in range(m):
    find = sys.stdin.readline().rstrip()
    if find[0] < "0" or find[0] > "9":
        sys.stdout.write(str(book[find]) + "\n")
    else:
        sys.stdout.write(book_reverse[int(find)] + "\n")

๐Ÿ”ธ ์ฝ”๋“œ ํ•ด์„ ๐Ÿ”ธ

  • ํฌ์ผ“๋ชฌ ์ด๋ฆ„์œผ๋กœ ๋ฒˆํ˜ธ๋ฅผ ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋”•์…”๋„ˆ๋ฆฌ ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ์‚ฌ์šฉํ–ˆ๋‹ค.
  • ๊ฒ€์ƒ‰ํ•  ๋‚ด์šฉ์ด ํฌ์ผ“๋ชฌ ์ด๋ฆ„(๋ฌธ์ž์—ด)์ด๋ฉด ๋ฒˆํ˜ธ๋ฅผ ์ถœ๋ ฅํ•˜๊ณ , ๋ฒˆํ˜ธ๊ฐ€ ์ž…๋ ฅ๋˜๋ฉด ์ด๋ฆ„์„ ์ถœ๋ ฅํ•œ๋‹ค.
    • ๋ฒˆํ˜ธ๋กœ๋„ ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ๋„๋ก map()์˜ reversed๋ฅผ ์ด์šฉํ•ด์„œ key์™€ value๋ฅผ ๋’ค์ง‘์€ ๋”•์…”๋„ˆ๋ฆฌ๋ฅผ ํ•˜๋‚˜ ๋” ๋งŒ๋“ ๋‹ค.
    • ์ž…๋ ฅ๋œ ๊ฐ’์˜ ์ฒซ ๋ฌธ์ž๊ฐ€ ์ˆซ์ž๊ฐ€ ์•„๋‹ˆ๋ฉด, ์ „์ฒด๋ฅผ ๋ฌธ์ž๋กœ ๋ณด๊ณ  ๊ฒฐ๊ณผ๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

๐Ÿ”ธ end ๐Ÿ”ธ

  • ํ•ด์‹œ๊ฐ€ ์‚ฌ์šฉ๋œ ๋”•์…”๋„ˆ๋ฆฌ๋ฅผ ์—ฐ์Šตํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ์˜€๋‹ค.
  • value๋กœ key๋ฅผ ๊ฒ€์ƒ‰ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋ฐ˜๋ณต๋ฌธ ๋ณด๋‹ค, ๋’ค์ง‘ํžŒ ๋”•์…”๋„ˆ๋ฆฌ๋ฅผ ๋งŒ๋“ค์–ด ๋น ๋ฅด๊ฒŒ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค๋Š”๊ฑธ ๋ฐฐ์› ๋‹ค.

728x90

'CodingTest > Python' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

BOJ_11047 : ๋™์ „ 0  (0) 2022.08.28
BOJ_1764 : ๋“ฃ๋ณด์žก  (0) 2022.08.28
BOJ_11723 : ์ง‘ํ•ฉ  (0) 2022.08.25
BOJ_2941 : ํฌ๋กœ์•„ํ‹ฐ์•„ ์•ŒํŒŒ๋ฒณ  (0) 2022.08.24
BOJ_1308 : D-Day  (0) 2022.08.24