본문 바로가기

[알고리즘] 백준 Python 배우기 (1~50)

[백준 5355] 화성 수학

[문제] 

 

겨울 방학에 달에 다녀온 상근이는 여름 방학 때는 화성에 갔다 올 예정이다. (3996번) 화성에서는 지구와는 조금 다른 연산자 @, %, #을 사용한다. @는 3을 곱하고, %는 5를 더하며, #는 7을 빼는 연산자이다. 따라서, 화성에서는 수학 식의 가장 앞에 수가 하나 있고, 그 다음에는 연산자가 있다.

 

3996번: 위대한 사기꾼

문제 믿기 힘들겠지만 상근이는 이번 겨울 방학에 달에 갔다 왔다. 방학이 끝나고 다시 학교로 돌아온 상근이는 친구들에게 달나라 사람(Selenites)을 만났던 이야기를 해주었다. 상근이는 달에서 사용하는 수 체계를 주로 설명해주었다. 달에서는 음의 진법을 사용한다. 음의 진법은 사람들이 이해하기는 어렵다. 따라서, 상근이는 달을 여행하는 동안 0과 \(n\)을 포함하는 사이의 수 중에서 \(k\)진법과 \(-k\)진법에서 표현이 같은 수를 모두 외웠다.

www.acmicpc.net


[입력]

 

첫째 줄에 테스트 케이스의 개수 T가 주어진다. 다음 줄에는 화성 수학식이 한 줄에 하나씩 주어진다. 입력으로 주어지는 수는 정수이거나 소수 첫째 자리까지 주어지며, 0 이상 100 이하이다. 연산자는 최대 3개 주어진다.


[출력] 각 테스트 케이스에 대해서, 화성 수학식의 결과를 계산한 다음에, 소수점 둘째 자리까지 출력한다.

 

N = int(input())
for _ in range(N):
    tmp = list(map(str, input().split(" ")))
    num = eval(tmp[0])
    for i in range(1,len(tmp)):
        if tmp[i]=="@":
            num*=3
        if tmp[i]=="%":
            num+=5
        if tmp[i]=="#":
            num-=7
    print("%0.2f"%num)
        
        

'[알고리즘] 백준 Python 배우기 (1~50)' 카테고리의 다른 글

[백준 2935] 소음  (0) 2020.03.26
[백준 2675] 문자열 반복  (0) 2020.03.25
[백준 2914] 저작권  (0) 2020.03.25
[백준 2530] 인공지능 시계  (0) 2020.03.23
[백준 7287] 등록  (0) 2020.03.23