14402. ์•ผ๊ทผ (silver 4)

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

์˜์„ ํšŒ์‚ฌ๋Š” ์•ผ๊ทผ์ด ๋งค์šฐ ์žฆ์€ ํšŒ์‚ฌ์ด๋‹ค. ๋‹คํ–‰ํžˆ๋„ ์•ผ๊ทผ์ˆ˜๋‹น์„ ์ฑ™๊ฒจ ์ฃผ๊ธฐ๋Š” ํ•˜๋Š”๋ฐ, ์‚ฌ์žฅ nein์€ ๋งค์šฐ ์•…๋•ํ•œ ์‚ฌ์žฅ์ด๊ธฐ ๋•Œ๋ฌธ์— ์ตœ๋Œ€ํ•œ ์•ผ๊ทผ ์ˆ˜๋‹น์„ ์•ˆ ์ฑ™๊ฒจ์ฃผ๋ ค ํ•œ๋‹ค.

์˜์„ ํšŒ์‚ฌ์ด ์•ผ๊ทผ์ธ์ง€ ํ™•์ธํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. ๋งค์šฐ ์ด๋ฅธ ์•„์นจ๋ถ€ํ„ฐ ํ‡ด๊ทผ์‹œ๊ฐ„๊นŒ์ง€ ์ถœ์ž…๊ธฐ๋ก์ด ์ฃผ์–ด์ง„๋‹ค. ๋งŒ์•ฝ, ๋“ค์–ด๊ฐ„ ๊ธฐ๋ก์€ ์—†๋Š”๋ฐ, ๋‚˜์˜จ ๊ธฐ๋ก์ด ์žˆ๋‹ค๋ฉด ํšŒ์‚ฌ์—์„œ ์•ผ๊ทผ์„ ํ•œ ๊ฒƒ์œผ๋กœ ๊ธฐ๋ก๋œ๋‹ค. ๋˜ํ•œ ํšŒ์‚ฌ์— ๋“ค์–ด๊ฐ”๋Š”๋ฐ, ํ‡ด๊ทผ์‹œ๊ฐ„๊นŒ์ง€ ๋‚˜์˜ค์ง€ ์•Š๋Š”๋‹ค๋ฉด, ์ด ๋˜ํ•œ ์•ผ๊ทผ์„ ํ•˜๋Š” ๊ฒƒ์œผ๋กœ ๊ธฐ๋ก๋œ๋‹ค. ์ถœ์ž…๊ธฐ๋ก์— ๋”ฐ๋ผ์„œ ๋‘ ๊ธฐ์ค€ ๋‹ค ๋งŒ์กฑํ•  ์ˆ˜๋„ ์žˆ๋Š”๋ฐ, ์ด๋Š” ์•ผ๊ทผ์„ ๋‘ ๋ฒˆ ํ•œ ๊ฒƒ์œผ๋กœ ์ธ์ •๋œ๋‹ค. ํ•˜์ง€๋งŒ, ํšŒ์‚ฌ์— ๊ณ„์† ์žˆ์—ˆ์ง€๋งŒ ๋‚˜์˜ค๊ฑฐ๋‚˜ ๋“ค์–ด๊ฐ€์ง€๋ฅผ ์•Š์•„ ์ถœ์ž…๊ธฐ๋ก์ด ์—†๋‹ค๋ฉด ์•ผ๊ทผ์„ ํ•œ ๊ฒƒ์œผ๋กœ ์ธ์ •ํ•˜์ง€ ์•Š๋Š”๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์ด ์ถœ์ž…๊ธฐ๋ก์—๋Š” ์น˜๋ช…์ ์ธ ๋‹จ์ ์ด ์žˆ๋Š”๋ฐ, ๋™๋ช…์ด์ธ์„ ๊ตฌ๋ณ„ํ•˜์ง€ ๋ชปํ•œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ์ด๋ฆ„์ด ๊ฐ™์€ ๊ฒฝ์šฐ, ๊ฐ™์€ ์‚ฌ๋žŒ์œผ๋กœ ์ธ์‹ํ•˜๋ฉฐ, ๋‘˜๋‹ค ํšŒ์‚ฌ์— ๋‚จ์•„์žˆ๊ฑฐ๋‚˜ ๋“ค์–ด๊ฐ„ ๊ธฐ๋ก ์—†์ด ๋‚˜์˜จ ๊ธฐ๋ก์ด ์žˆ๋Š” ์‹์œผ๋กœ, ๋ช…ํ™•ํžˆ ๋ณด์ด๋Š” ๊ฒฝ์šฐ์—๋งŒ ๋ณต์ˆ˜๋กœ ์•ผ๊ทผ์ด ์ธ์ •๋œ๋‹ค.

์˜์„ ํšŒ์‚ฌ์˜ ์˜ค๋Š˜์˜ ์ถœ์ž…๊ธฐ๋ก์ด ์ฃผ์–ด์ง„๋‹ค. ์ด ๊ธฐ๋ก์„ ๋ฐ”ํƒ•์œผ๋กœ ๋ชจ๋“  ์ง์›์˜ ์•ผ๊ทผ ํšŸ์ˆ˜์˜ ํ•ฉ์„ ์ถœ๋ ฅํ•˜์‹œ์˜ค.

 

์ž…๋ ฅ

์ฒซ์งธ ์ค„์—๋Š” ์ถœ์ž…๊ธฐ๋ก์˜ ๊ฐœ์ˆ˜ q๊ฐ€ ์ฃผ์–ด์ง„๋‹ค.( 1≤q≤100,000)

๋‹ค์Œ q์ค„์—๋Š” ์ด๋ฆ„ s์™€ ๋“ค์–ด๊ฐ„์ง€ ๋‚˜๊ฐ„์ง€์— ๋Œ€ํ•œ ์ •๋ณด p๊ฐ€ ์ฃผ์–ด์ง€๋Š”๋ฐ, p๋Š” ‘+’์ผ ๋•Œ ๋“ค์–ด๊ฐ„ ๊ฒƒ์ด๊ณ , ‘-‘์ผ ๋•Œ ๋‚˜๊ฐ„ ๊ฒƒ์ด๋‹ค. ์ด๋ฆ„์˜ ๊ธธ์ด๋Š” 30์ž๋ฅผ ๋„˜์ง€ ์•Š๋Š”๋‹ค. ์ด๋ฆ„์€ ์†Œ๋ฌธ์ž๋กœ๋งŒ ์ด๋ฃจ์–ด์ ธ ์žˆ๋‹ค.

 

์ถœ๋ ฅ

์ถœ์ž…๊ธฐ๋ก์„ ๋ฐ”ํƒ•์œผ๋กœ ๋ชจ๋“  ์ง์›์˜ ์•ผ๊ทผ ํšŸ์ˆ˜์˜ ํ•ฉ์„ ์ถœ๋ ฅํ•˜์‹œ์˜ค.

 

 

์˜ˆ์ œ ์ž…๋ ฅ1

7
nein +
nein -
nein -
nein -
nein +
nein +
nein +

์˜ˆ์ œ ์ถœ๋ ฅ1

5

 

 

 

ํ’€์ด)

์šฐ์„  ์ถœ์ž… ๊ธฐ๋ก์˜ ๊ฐœ์ˆ˜๋ฅผ q ๋ณ€์ˆ˜์— ์ €์žฅํ•ด์ฃผ์—ˆ๋‹ค. ๊ทธ ๋‹ค์Œ ๋”•์…”๋„ˆ๋ฆฌ์™€ overtime ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•ด์ฃผ์—ˆ๋‹ค.

for๋ฌธ์„ ์‚ฌ์šฉํ•ด์„œ ์ถœ์ž… ๊ธฐ๋ก์˜ ๊ฐœ์ˆ˜๋งŒํผ ๋ฐ˜๋ณตํ•  ๋•Œ, record์— ์ถœ์ž… ๊ธฐ๋ก์„ ๋ฆฌ์ŠคํŠธ ํ˜•ํƒœ๋กœ ์ €์žฅํ•ด์ฃผ์—ˆ๋‹ค.

์ž…๋ ฅํ•œ ๊ธฐ๋ก ์ค‘ 0๋ฒˆ์งธ ์ธ๋ฑ์Šค๋ฅผ name์— ์ €์žฅํ•˜๊ณ , 1๋ฒˆ์งธ ์ธ๋ฑ์Šค๋ฅผ data์— ์ €์žฅํ•ด์ฃผ์–ด if elif๋ฌธ์„ ์จ์ฃผ์—ˆ๋‹ค.

๋งŒ์•ฝ data์˜ ๊ฐ’์ด -์ธ ๊ฒฝ์šฐ์—๋Š” ํšŒ์‚ฌ์—์„œ ๋‚˜์˜จ ๊ฒฝ์šฐ์ด๊ธฐ ๋•Œ๋ฌธ์— ๋‘ ๊ฐ€์ง€ ๊ฒฝ์šฐ๋กœ ๋˜ ๋‚˜๋ˆ ์ค„ ์ˆ˜ ์žˆ๋‹ค.

  1. check ๋”•์…”๋„ˆ๋ฆฌ์— ์ด๋ฆ„์ด ์—†๋Š” ๊ฒฝ์šฐ -> ์•ผ๊ทผํ•œ ๊ฒฝ์šฐ
  2. check ๋”•์…”๋„ˆ๋ฆฌ์— ์ด๋ฆ„์ด ์žˆ๋Š” ๊ฒฝ์šฐ -> ์•ผ๊ทผ์„ ํ•˜์ง€ ์•Š๊ณ  ํ‡ด๊ทผํ•œ ๊ฒฝ์šฐ

๋”ฐ๋ผ์„œ ์ด์— ๋งž๊ฒŒ 1๋ฒˆ์˜ ๊ฒฝ์šฐ์—๋Š” ์•ผ๊ทผํ•œ ์‚ฌ๋žŒ์˜ ์ˆ˜๋ฅผ ์„ธ๋Š” ๋ณ€์ˆ˜์ธ overtime์— 1์„ ๋”ํ•ด์ฃผ์—ˆ๊ณ , 2๋ฒˆ์˜ ๊ฒฝ์šฐ์—๋Š” name ์ธ๋ฑ์Šค์— ํ•ด๋‹นํ•˜๋Š” value๊ฐ’์„ 1 ๋นผ์ฃผ์—ˆ๋‹ค.

elif๋ฌธ์„ ์‚ฌ์šฉํ•ด์„œ data๊ฐ€ +์ธ ๊ฒฝ์šฐ์—๋Š” ํšŒ์‚ฌ์— ๋“ค์–ด๊ฐ„ ๊ฒฝ์šฐ์ด๋‹ค. name์ด ๋”•์…”๋„ˆ๋ฆฌ์— ์—†๋Š” ๊ฒฝ์šฐ 1๋กœ value๊ฐ’์„ ์ €์žฅํ•ด์ฃผ์—ˆ๊ณ , name์ด ์ด๋ฏธ ๋”•์…”๋„ˆ๋ฆฌ์— ์กด์žฌํ•˜๋Š” ๊ฒฝ์šฐ์—๋Š” 1์„ ๋”ํ•ด์ฃผ์—ˆ๋‹ค. ์ด๋•Œ name ์ธ๋ฑ์Šค์— ๋Œ€ํ•ด value์˜ ๊ฐ’์ด 0์ด ์•„๋‹Œ ๊ฒฝ์šฐ๋„ overtime๊ณผ ํ•จ๊ป˜ ์•ผ๊ทผํ•œ ์ผ€์ด์Šค์— ์†ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋งˆ์ง€๋ง‰ ์•ผ๊ทผํ•˜๋Š” ์ง์›์˜ ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•  ๋•Œ์—๋Š” check ๋”•์…”๋„ˆ๋ฆฌ์˜ value๊ฐ’๊ณผ overtime์„ ๋”ํ•ด์ค€ ๊ฐ’์„ ์ถœ๋ ฅํ•ด์ฃผ์—ˆ๋‹ค.

 

import sys
input = sys.stdin.readline

q = int(input())  # ์ถœ์ž… ๊ธฐ๋ก์˜ ๊ฐœ์ˆ˜

check = {} 
overtime =0    
for i in range(q):
  enter = list(input().split())  # ๊ธฐ๋ก 
  name, data = enter[0], enter[1]
  if data == '-':     # ํšŒ์‚ฌ์—์„œ ๋‚˜์˜ด
    if name not in check or check[name] == 0:  # ์•ผ๊ทผํ•œ ๊ฒฝ์šฐ
      overtime +=1
    elif name in check:    # ์•ผ๊ทผ ์•ˆ ํ•œ ๊ฒฝ์šฐ
      check[name] -=1
  elif data == '+':    # ๋“ค์–ด๊ฐ„ ๊ฒฝ์šฐ
    if name not in check:    
      check[name] = 1    # ๋“ค์–ด๊ฐ”๋‹ค๊ณ  ๋“ฑ๋ก
    else:
      check[name] += 1   

# ์•ผ๊ทผํ•˜๋Š” ์ง์› ์ˆ˜
print(sum(check.values()) + overtime)

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

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