[백준] 5355. 화성 수학

anjiyoo·2024년 12월 9일

Algorithm

목록 보기
18/38
post-thumbnail

📄문제

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

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

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


✏️풀이

  • case에 사용자가 입력한 값을 정수로 변환하여 저장한다.

  • for 반복문을 이용해 각 케이스마다 입력을 받아 처리한다.

  • mars는 입력받은 문자열을 공백 기준으로 나누어 리스트로 저장한다.

  • mars 리스트의 각 요소를 순회하며 연산을 수행한다.

  • 첫 번째 요소는 항상 숫자(float)이며, answer에 저장한다.

  • 나머지 요소들은 #, %, @ 규칙에 따라 계산한다.

  • 최종 결과인 anwser를 소수점 둘째 자리까지 출력한다.


✔️정답

case = int(input())

for _ in range(case):
    mars = list(map(str, input().split()))
    answer = 0
    for i in range(len(mars)):
        if i == 0:
            answer += float(mars[i])
        else:
            if mars[i] == "#":
                answer -= 7
            elif mars[i] == "%":
                answer += 5
            elif mars[i] == "@":
                answer *= 3
                
    print("%0.2f" % answer)
profile
기록으로 흔적을 남기는 것을 좋아합니다

0개의 댓글