10816. ์ˆซ์ž ์นด๋“œ 2 (Sliver 4)

# ์ž๋ฃŒ๊ตฌ์กฐ

์ˆซ์ž ์นด๋“œ๋Š” ์ •์ˆ˜ ํ•˜๋‚˜๊ฐ€ ์ ํ˜€์ ธ ์žˆ๋Š” ์นด๋“œ์ด๋‹ค. ์ƒ๊ทผ์ด๋Š” ์ˆซ์ž ์นด๋“œ N๊ฐœ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ์ •์ˆ˜ M๊ฐœ๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ์ด ์ˆ˜๊ฐ€ ์ ํ˜€์žˆ๋Š” ์ˆซ์ž ์นด๋“œ๋ฅผ ์ƒ๊ทผ์ด๊ฐ€ ๋ช‡ ๊ฐœ ๊ฐ€์ง€๊ณ  ์žˆ๋Š”์ง€ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

 

์ž…๋ ฅ

์ฒซ์งธ ์ค„์— ์ƒ๊ทผ์ด๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์ˆซ์ž ์นด๋“œ์˜ ๊ฐœ์ˆ˜ N(1 ≤ N ≤ 500,000)์ด ์ฃผ์–ด์ง„๋‹ค. ๋‘˜์งธ ์ค„์—๋Š” ์ˆซ์ž ์นด๋“œ์— ์ ํ˜€์žˆ๋Š” ์ •์ˆ˜๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ์ˆซ์ž ์นด๋“œ์— ์ ํ˜€์žˆ๋Š” ์ˆ˜๋Š” -10,000,000๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™๊ณ , 10,000,000๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™๋‹ค.

์…‹์งธ ์ค„์—๋Š” M(1 ≤ M ≤ 500,000)์ด ์ฃผ์–ด์ง„๋‹ค. ๋„ท์งธ ์ค„์—๋Š” ์ƒ๊ทผ์ด๊ฐ€ ๋ช‡ ๊ฐœ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์ˆซ์ž ์นด๋“œ์ธ์ง€ ๊ตฌํ•ด์•ผ ํ•  M๊ฐœ์˜ ์ •์ˆ˜๊ฐ€ ์ฃผ์–ด์ง€๋ฉฐ, ์ด ์ˆ˜๋Š” ๊ณต๋ฐฑ์œผ๋กœ ๊ตฌ๋ถ„๋˜์–ด์ ธ ์žˆ๋‹ค. ์ด ์ˆ˜๋„ -10,000,000๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™๊ณ , 10,000,000๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™๋‹ค.

 

์ถœ๋ ฅ

์ฒซ์งธ ์ค„์— ์ž…๋ ฅ์œผ๋กœ ์ฃผ์–ด์ง„ M๊ฐœ์˜ ์ˆ˜์— ๋Œ€ํ•ด์„œ, ๊ฐ ์ˆ˜๊ฐ€ ์ ํžŒ ์ˆซ์ž ์นด๋“œ๋ฅผ ์ƒ๊ทผ์ด๊ฐ€ ๋ช‡ ๊ฐœ ๊ฐ€์ง€๊ณ  ์žˆ๋Š”์ง€๋ฅผ ๊ณต๋ฐฑ์œผ๋กœ ๊ตฌ๋ถ„ํ•ด ์ถœ๋ ฅํ•œ๋‹ค.

 

์˜ˆ์ œ ์ž…๋ ฅ1

10
6 3 2 10 10 10 -10 -10 7 3
8
10 9 -5 2 3 4 5 -10

์˜ˆ์ œ ์ถœ๋ ฅ1

3 0 0 1 2 0 0 2

 

 

 

ํ’€์ด)

์šฐ์„  ์ƒ๊ทผ์ด๊ฐ€ ๊ฐ–๊ณ  ์žˆ๋Š” ์นด๋“œ ๊ฐœ์ˆ˜ n์„ ์ž…๋ ฅ๋ฐ›๊ณ , ๊ทธ ๋‹ค์Œ ์ค„์— ์ƒ๊ทผ์ด๊ฐ€ ๊ฐ–๊ณ  ์žˆ๋Š” ์ˆซ์ž ์นด๋“œ์˜ ์ˆซ์ž๋ฅผ ์ž…๋ ฅ๋ฐ›์•„์„œ cards ๋ฐฐ์—ด์— ์ €์žฅํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  sort ํ•จ์ˆ˜๋ฅผ ์จ์ฃผ์–ด์„œ ์˜ค๋ฆ„์ฐจ์ˆœ ์„ค์ •์„ ํ•ด์ฃผ์—ˆ๋‹ค.

๋‹ค์Œ์œผ๋กœ ์ฃผ์–ด์ง€๋Š” ์ •์ˆ˜์˜ ๊ฐœ์ˆ˜์ธ m์„ m ๋ณ€์ˆ˜์— ์ €์žฅํ•˜๊ณ  ์ฃผ์–ด์ง€๋Š” ์ •์ˆ˜๋“ค์„ check ๋ฐฐ์—ด์— ๋‹ด์•„์ฃผ์—ˆ๋‹ค.

dic๋”•์…”๋„ˆ๋ฆฌ๋ฅผ ์„ ์–ธํ•ด์„œ ์ƒ๊ทผ์ด๊ฐ€ ์ˆซ์ž์นด๋“œ๋ฅผ ๋ช‡ ์žฅ ๊ฐ–๊ณ  ์žˆ๋Š”์ง€ ์นด์šดํŒ…ํ•ด์ฃผ์—ˆ๋‹ค.

for๋ฌธ์„ ์‚ฌ์šฉํ•ด์„œ cards ๋ฐฐ์—ด์˜ ์›์†Œ์— ๋Œ€ํ•ด, ๊ทธ ์›์†Œ๊ฐ€ ๋”•์…”๋„ˆ๋ฆฌ์— ์žˆ๋Š” ๊ฒฝ์šฐ์—๋Š” ๋ฐฐ์—ด์˜ ์›์†Œ์— ํ•ด๋‹นํ•˜๋Š” ์ธ๋ฑ์Šค์˜ value๊ฐ’์„ 1 ๋”ํ•ด์ฃผ์—ˆ๊ณ , ๊ทธ ์™ธ์˜ ๊ฒฝ์šฐ์—๋Š” ๋ฐฐ์—ด์˜ ์›์†Œ์— ํ•ด๋‹นํ•˜๋Š” ์ธ๋ฑ์Šค์˜ value๊ฐ’์— 1์„ ์ €์žฅํ•ด์ฃผ์—ˆ๋‹ค.

๋งˆ์ง€๋ง‰์œผ๋กœ m๋ฒˆ ๋ฐ˜๋ณตํ•˜๋Š” for๋ฌธ์„ ๋งŒ๋“ค์–ด์„œ ๋”•์…”๋„ˆ๋ฆฌ์˜ value ๊ฐ’์ด ์กด์žฌํ•  ๊ฒฝ์šฐ ํ•ด๋‹น value๊ฐ’์„ ์ถœ๋ ฅํ•ด์ฃผ์—ˆ๊ณ , ์•„๋‹Œ ๊ฒฝ์šฐ์—๋Š” 0์„ ์ถœ๋ ฅํ•ด์ฃผ์—ˆ๋‹ค.

n = int(input())   # ์นด๋“œ ๊ฐœ์ˆ˜
cards = list(map(int, input().split(' '))) 
cards.sort()

m = int(input())
check = list(map(int, input().split(' ')))

dic = {}

for i in cards:
    if i in dic:    # ์›์†Œ๊ฐ€ ๋”•์…”๋„ˆ๋ฆฌ์— ์กด์žฌํ•˜๋ฉด
        dic[i] += 1  # value 1 ์ถ”๊ฐ€
    else:	 		# ์›์†Œ๊ฐ€ ๋”•์…”๋„ˆ๋ฆฌ์— ์—†์œผ๋ฉด
        dic[i] = 1  # value 1 ์ €์žฅ

for i in range(m):
    if check[i] in dic:
        print(dic[check[i]], end=' ')
    else:
        print(0, end=' ')

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

[Python] ๋ฐฑ์ค€ 25192๋ฒˆ  (0) 2022.11.21
[Python] ๋ฐฑ์ค€ 14402๋ฒˆ  (0) 2022.11.21
[Python] ๋ฐฑ์ค€ 1935๋ฒˆ  (0) 2022.11.21
[Python] ๋ฐฑ์ค€ 2910๋ฒˆ  (0) 2022.11.20
[Python] ๋ฐฑ์ค€ 17413๋ฒˆ  (0) 2022.11.20
๋ณต์‚ฌํ–ˆ์Šต๋‹ˆ๋‹ค!