"14888번 연산나누기"로 가셔서 설명을 보시면
또, 나눗셈은 정수 나눗셈으로 몫만 취한다. 음수를 양수로 나눌 때는 C++14의 기준을 따른다. 즉, 양수로 바꾼 뒤 몫을 취하고, 그 몫을 음수로 바꾼 것과 같다. 이에 따라서, 위의 식 4개의 결과를 계산해보면 아래와 같다.
- 1+2+3-4×5÷6 = 1
- 1÷2+3+4-5×6 = 12
- 1+2÷3×4-5+6 = 5
- 1÷2×3-4+5+6 = 7
라고 나와있습니다. 이문제에선 나누기에 대해서 설명이 없으니 위를 기준으로 보면,
/ 를 사용하는것이 아닌 // 을 사용해야하며, 모두 양수 or 음수인 경우엔 상관없지만 res * nums[i] < 0 인 경우에는 abs(res) // abs(nums[i]) * -1 을 사용하면 위와 같은 결과를 가집니다. 이를 기준으로 코드 수정하시면 알고리즘은 맞는거 같으니 통과하실꺼같습니다.
kye0226 2년 전
반례가 무엇일까요
아래코드대로 하면 연산자 갯수 상관없이 min,max다 구할 수 있는데 안되는 이유가 궁금합니다.