-
[Python] 백준 5355번 - 화성 수학IT&개발/Baekjoon 2024. 3. 18. 16:00728x90반응형
화성 수학
문제 )
겨울 방학에 달에 다녀온 상근이는 여름 방학 때는 화성에 갔다 올 예정이다. 화성에서는 지구와는 조금 다른 연산자 @, %, #을 사용한다. @는 3을 곱하고, %는 5를 더하며, #는 7을 빼는 연산자이다. 따라서, 화성에서는 수학 식의 가장 앞에 수가 하나 있고, 그 다음에는 연산자가 있다.
입력 )
첫째 줄에 테스트 케이스의 개수 T가 주어진다. 다음 줄에는 화성 수학식이 한 줄에 하나씩 주어진다. 입력으로 주어지는 수는 정수이거나 소수 첫째 자리까지 주어지며, 0 이상 100 이하이다. 연산자는 최대 3개 주어진다.
출력 )
각 테스트 케이스에 대해서, 화성 수학식의 결과를 계산한 다음에, 소수점 둘째 자리까지 출력한다.
내 풀이 )
T = int(input()) result = [] # 테스트 케이스(T)만큼 반복 for i in range(T): # 계산식 입력받기 marsmath = input().split() # 첫 번째 문자열은 실수형으로 변환 marsmath[0] = float(marsmath[0]) # 입력받은 계산식의 길이만큼 반복, 인덱스 1번부터 for m in range(1, len(marsmath)): if marsmath[m] == '@': marsmath[0] = marsmath[0] * 3 elif marsmath[m] == '%': marsmath[0] = marsmath[0] + 5 else: marsmath[0] = marsmath[0] - 7 # 소수점 둘째자리까지만 표시 marsmath[0] = '{: .2f}'.format(marsmath[0]) result.append(marsmath[0]) for value in result: print(value)
해설 )
- 9번 라인에서 marsmath 인덱스 1번부터 반복하는 이유는 0번은 실수형으로 바꿨기 때문에 기호부터 조건문 돌리겠다는 의미!
- 조건문대로 계산을 처리했다면 marsmath[0] 값이 입력한 값이 아니라 결과값으로 저장
- 각 문제의 결과를 소수점 아래 2자리까지만 표시
- 결과값 result 리스트에 추가
- 마지막으로 result 리스트에 있는 결과값 한 줄에 하나씩 출력
결과 )
728x90반응형'IT&개발 > Baekjoon' 카테고리의 다른 글
[Python] 백준 10214번 - Baseball (2) 2024.03.23 [Python] 백준 10103번 - 주사위 게임 (0) 2024.03.20 [Python] 백준 8958번 - OX퀴즈 (0) 2024.03.19 [Python] 백준 10817번 - 세 수 (0) 2024.03.12 [Python] 백준 10869번 - 사칙연산 (0) 2024.03.11