Test/Python(20220101~)
[ToDo]프로그래머스.L0.문자열계산하기
kiostory
2022. 10. 19. 20:52
문제 설명
my_string은 "3 + 5"처럼 문자열로 된 수식입니다. 문자열 my_string이 매개변수로 주어질 때, 수식을 계산한 값을 return 하는 solution 함수를 완성해주세요.
제한사항
- 연산자는 +, -만 존재합니다.
- 문자열의 시작과 끝에는 공백이 없습니다.
- 0으로 시작하는 숫자는 주어지지 않습니다.
- 잘못된 수식은 주어지지 않습니다.
- 5 ≤ my_string의 길이 ≤ 100
- my_string을 계산한 결과값은 1 이상 100,000 이하입니다.
- my_string의 중간 계산 값은 -100,000 이상 100,000 이하입니다.
- 계산에 사용하는 숫자는 1 이상 20,000 이하인 자연수입니다.
- my_string에는 연산자가 적어도 하나 포함되어 있습니다.
- return type 은 정수형입니다.
- my_string의 숫자와 연산자는 공백 하나로 구분되어 있습니다.
입출력 예my_stringresult
"3 + 4" | 7 |
입출력 예 설명
입출력 예 #1
- 3 + 4 = 7을 return 합니다.
* 첫 번째 생각
공백을 기준으로 식을 나눠서,
첫 번째, 세 번째는 숫자로,
두 번째는 연산자로 구분해서,
연산자가 뭔가 보고, 해당 연산결과를 return 딱!
def solution(my_string):
First_no, Cal_character, Second_no = my_string.split(' ')
First_number = int(First_no)
Second_number = int(Second_no)
return (First_number + Second_number) if Cal_character == '+' else (First_number - Second_number)
로직 bug 은 없는 것 같은데,
코드 실행에서는 모두 통과하지만,
더보기
실행 결과
테스트 1 | |
입력값 〉 | "3 + 4" |
기댓값 〉 | 7 |
실행 결과 〉 | 테스트를 통과하였습니다. |
테스트 2 | |
입력값 〉 | "2 - 8" |
기댓값 〉 | -6 |
실행 결과 〉 | 테스트를 통과하였습니다. |
테스트 3 | |
입력값 〉 | "17 - 8" |
기댓값 〉 | 9 |
실행 결과 〉 | 테스트를 통과하였습니다. |
채점시에는 실패가 더 많다. 20% ...
왜지...?
더보기
실행 결과
같은 코드로 채점한 결과가 있습니다.
정확성 테스트
테스트 1 〉 | 실패 (런타임 에러) |
테스트 2 〉 | 실패 (런타임 에러) |
테스트 3 〉 | 실패 (런타임 에러) |
테스트 4 〉 | 실패 (런타임 에러) |
테스트 5 〉 | 실패 (런타임 에러) |
테스트 6 〉 | 실패 (런타임 에러) |
테스트 7 〉 | 실패 (런타임 에러) |
테스트 8 〉 | 통과 (0.02ms, 10.4MB) |
테스트 9 〉 | 통과 (0.02ms, 10.3MB) |
테스트 10 〉 | 실패 (런타임 에러) |
채점 결과
정확성: 20.0
합계: 20.0 / 100.0
* 두 번째 생각
python에는 이발 이라는 함수가 있었다. 주어진 식을 계산해 주는... eval()
def solution(my_string):
return eval(my_string)