[BOJ]๋ฐฑ์ค€#6595 Silver 5 Ballot evaluation๐Ÿ“ฑ๐Ÿ“ฒ (Python, ํŒŒ์ด์ฌ)

์ž„์ค€์„ฑยท2022๋…„ 8์›” 16์ผ
0

๋ฐฑ์ค€ Algorithm

๋ชฉ๋ก ๋ณด๊ธฐ
50/59
post-thumbnail

๋ฐฑ์ค€ 6595๋ฒˆ
https://www.acmicpc.net/problem/6595

๋ฌธ์ œ



ํ›„๊ธฐ

โฐ ํ’€์ด์‹œ๊ฐ„ 30๋ถ„ ++โฐ

๋งžํžŒ ์‚ฌ๋žŒ์ด ๋งŽ์ง€ ์•Š์€ ๋ฌธ์ œ๋ฅผ ํ’€๊ธฐ ์œ„ํ•ด ํ’€์€ ์‚ฌ๋žŒ์ด ์ ์€ ์ˆœ์œผ๋กœ ์ •๋ ฌํ•ด์„œ

์ฐพ์€ ๋ฌธ์ œ์˜ 8๋ฒˆ์งธ๋‹ค. ์—ฌ๋Ÿฌ ๋ฒˆ ํ‹€๋ ธ์Šต๋‹ˆ๋‹ค๋ฅผ ๋ณด๊ฒŒ ํ•œ ๋ฌธ์ œ์˜€๋‹ค. ๊ฒฐ๋ก ์„ ๋งํ•˜์ž๋ฉด,

์—ฌ๋Ÿฌ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฌธ์ž์—ด๋กœ ์ €์žฅํ•˜๊ณ , ํ•ด๋‹นํ•˜๋Š” value๊ฐ’์„ ๋”•์…”๋„ˆ๋ฆฌ์— ์ €์žฅํ•œ๋‹ค.

์ €์žฅ๋ฐ›์€ ๋ฌธ์ž์—ด + ๋ฌธ์ž์—ด + ๋ฌธ์ž์—ด .... ๊ณผ ๋ถ€๋“ฑํ˜ธ๋กœ ์—ฐ๊ฒฐ๋œ ์‹์„ ๋ฐ›์•„์„œ ํ•ด๋‹น ์‹์ด ์ฐธ์ด๋ฉด

correct๋ฅผ ์ถœ๋ ฅํ•˜๊ณ , ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด incorrect๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

์‹์˜ ์ขŒ๋ณ€์—๋Š” ๋ฌธ์ž์—ด๊ณผ "+" ๋ถ€ํ˜ธ๋ฐ–์— ์˜ค์ง€ ์•Š์•„์„œ ๋‹จ์ˆœํžˆ ๊ณต๋ฐฑ์„ ๊ธฐ์ค€์œผ๋กœ ๋ฌธ์ž์—ด์„ ์Šฌ๋ผ์ด์‹ฑ

ํ•˜๋ฉด ๋œ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๊ณ , ์‹ค์ œ๋กœ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋Š” ๋ฌธ์ œ์—†์ด ํ†ต๊ณผํ–ˆ๋‹ค.

ํ•˜์ง€๋งŒ ๊ฐ„๊ณผํ–ˆ๋˜ ๋ถ€๋ถ„์€ ๋ถ€๋™ ์†Œ์ˆ˜์ ์— ๋Œ€ํ•œ ๋ถ€๋ถ„์ด์—ˆ๋‹ค.

0.1 + 0.2 = 0.3์ด ์•„๋‹ˆ๋ผ ํŒŒ์ด์ฌ์€ 0.30000000000000004 ์™€ ๊ฐ™์€ ๊ฐ’์œผ๋กœ ๋ฆฌํ„ดํ•œ๋‹ค.

์ด๋Š” 0๊ณผ 1๋กœ ์ €์žฅํ•˜๋Š” ์ปดํ“จํ„ฐ์˜ ์ €์žฅ์‹œ์Šคํ…œ์— ๋Œ€ํ•œ ์˜ค๋ฅ˜์ธ๋ฐ, ์ด์— ๊ด€ํ•œ ๊ธ€์€ ๋”ฐ๋กœ ์ž‘์„ฑํ•  ์˜ˆ์ •์ด๋‹ค.

์•„๋ฌดํŠผ, ์†Œ์ˆ˜์ ์— ๋Œ€ํ•œ ๊ฐ’์ด ์ •์ƒ์ ์œผ๋กœ ์ถœ๋ ฅ๋˜์ง€ ์•Š์•„ ๊ณ„์† ํ‹€๋ ธ์Šต๋‹ˆ๋‹ค๊ฐ€ ๋‚˜์˜ค๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ์—ˆ๊ณ ,

๋ฌธ์ œ์—์„œ๋Š” ์†Œ์ˆ˜์  ์ฒซ์งธ์งœ๋ฆฌ ๊นŒ์ง€๋งŒ value๊ฐ’์œผ๋กœ ์ž…๋ ฅ๋œ๋‹ค๋Š” ๋ถ€๋ถ„์ด ์žˆ์—ˆ๊ธฐ ๋•Œ๋ฌธ์—,

์†Œ์ˆ˜์  ๋‘˜์งธ์ž๋ฆฌ์—์„œ ๋ฐ˜์˜ฌ๋ฆผํ•˜์—ฌ ๊ฐ’์„ ๋น„๊ตํ•  ์ˆ˜ ์žˆ๊ฒŒ roundํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด์„œ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.

๋‚˜์˜ ํ’€์ด

import sys
input =sys.stdin.readline

li = dict()
N , M = map(int,input().split())
for _ in range(N):
    name, num = map(str,input().rstrip().split())
    num = float(num)
    li[name] = num

for case in range(1,M+1):
    cnt = 0
    new_li = list(map(str,input().rstrip().split()))
    n= int(new_li[-1])
    new_li = new_li[:-1]
    for i in new_li:
        if i in li.keys():
            cnt += li.get(i)
        elif i == "<":
            cnt = round(cnt,1)
            if cnt < n:
                print("Guess #{} was correct.".format(case))
            else:
                print("Guess #{} was incorrect.".format(case))
        elif i == ">":
            cnt = round(cnt,1)
            if cnt > n:
                print("Guess #{} was correct.".format(case))
            else:
                print("Guess #{} was incorrect.".format(case))
        elif i == "<=":
            cnt = round(cnt,1)
            if cnt <= n:
                print("Guess #{} was correct.".format(case))
            else:
                print("Guess #{} was incorrect.".format(case))
        elif i == ">=":
            cnt = round(cnt,1)
            if cnt >= n:
                print("Guess #{} was correct.".format(case))
            else:
                print("Guess #{} was incorrect.".format(case))
        elif i== "=":
            cnt = round(cnt,1)
            if cnt == n:
                print("Guess #{} was correct.".format(case))
            else:
                print("Guess #{} was incorrect.".format(case))
profile
์•„๋ฌด๋ตํฌ ์žˆ์ด

0๊ฐœ์˜ ๋Œ“๊ธ€