선표는 게임을 통해 사칙 연산을 공부하고 있다.
N개의 숫자가 적혀 있는 게임 판이 있고, +, -, x, / 의 연산자 카드를 숫자 사이에 끼워 넣어 다양한 결과 값을 구해보기로 했다.
수식을 계산할 때 연산자의 우선 순위는 고려하지 않고 왼쪽에서 오른쪽으로 차례대로 계산한다.
예를 들어 1, 2, 3 이 적힌 게임 판에 +와 x를 넣어 1 + 2 * 3을 만들면 1 + 2를 먼저 계산하고 그 뒤에 * 를 계산한다.
즉 1+2*3의 결과는 9이다.
마지막 예제가 왜 16임?
암만 생각 해도 15인데
예제상 round to zero를 의미하는거같긴한데.. 이건 문제에서 조건을 명확히 안 쓴게 맞는듯. - dc App
문제에선 나눗셈할 때 소숫점 이하는 버리라고 했고 파이썬 //는 floor 쓰는 거잖음
a // b를 int(a/b)로 바꾸니까 통과하긴 했는데 왜 되는지 이해가 안 되네요. 둘다 바닥함수가 되지 않나요?
ㄴ
int(-1.5) = 1 임
-2/3 하면 -0.666666 이렇게 나오잖아요 제약조건인가 소숫점 버리랫으니까 0이되서 뒤에 7+9만 해주면 16
검색 결과 a // b는 소수점을 버리는 연산이 아니라 a / b 의 바닥함수값을 리턴하는 연산이었네요. 그래서 양수끼리의 연산에서는 소수점을 버리는 것 처럼 동작하지만 음수에서는 소수점을 버린 값보다 -1이 작아질 수 있는거였습니다.
https://stackoverflow.com/questions/34217841/integer-division-in-python-3-strange-result-with-negative-number/34217875?fbclid=IwAR2DT_h0WVKIIrQ9bryWZLsHBQ5AsRcblr0A3LzbPMx9JW5QigNT8ZO2X30