할껀하고놀자

[백준] 13420 사칙연산 본문

[IT]/백준

[백준] 13420 사칙연산

working_hard 2019. 9. 29. 01:25
728x90
import sys
sys.stdin = open('1.txt')

n = int(input())
for i in range(n):
    li = input().split(' ')
    flag = False
    if li[1]=='*':
        tmp = int(li[0])*int(li[2])
        if tmp == int(''.join(li[-1:])):
            flag=True
    elif li[1]=='+':
        tmp = int(li[0])+int(li[2])
        if tmp == int(''.join(li[-1:])):
            flag=True
    elif li[1]=='-':
        tmp = int(li[0])-int(li[2])
        if tmp == int(''.join(li[-1:])):
            flag=True
    elif li[1]=='/':
        tmp = int(li[0])/int(li[2])
        if tmp == int(''.join(li[-1:])):
            flag=True

    if flag==True:
        print('correct')
    else:
        print('wrong answer')

 

다른사람 풀이

import sys;input()
for s in sys.stdin:
	a,b=s.split("=")
	print(["correct","wrong answer"][int(b)!=eval(a)])

- eval 이라는 함수는 문자열을 그대로 실행시켜 준다고 함.

 

다른 사람 풀이 2

import sys
def is_correct(s):
    tmp = s.split()
    for i in range(0,5,2):
        tmp[i] = int(tmp[i])
    if tmp[3]!='=':
        return False
    if tmp[1]=="*":
        if tmp[0]*tmp[2]==tmp[4]:
            return True
    elif tmp[1]=="+":
        if tmp[0]+tmp[2]==tmp[4]:
            return True
    elif tmp[1]=="-":
        if tmp[0]-tmp[2]==tmp[4]:
            return True
    elif tmp[1]=="/":
        if tmp[0]//tmp[2]==tmp[4]:
            return True
    return False
n = sys.stdin.readline()
for i in range(int(n)):
    s1 = sys.stdin.readline().rstrip()
    print("correct" if is_correct(s1) else "wrong answer")

배운점

input()보다는 sys.stdin.readline()을 사용하는 것이 속도 개선에 도움이 된다.

 

다른 사람 풀이 3

r=""
for _ in range(int(input())):
    s=input().split()
    if int(eval(s[0]+s[1]+s[2]))==int(s[-1]):
        r+="correct\n"
    else:
        r+="wrong answer\n"
print(r,end="")

 

'[IT] > 백준' 카테고리의 다른 글

[백준] 5524번 입실  (0) 2019.09.29
[백준] 2935 소음  (0) 2019.09.29
[백준] 1010번 다리놓기  (0) 2019.09.28
[백준] 11179번 2진수 뒤집기 (C++, python3)  (0) 2019.09.21
[백준] 2744번 대소문자 바꾸기  (0) 2019.09.21
Comments