alsdn74123   2년 전

우선순위를 정해서 연산을 진행했습니다

1. 2의 거듭제곱이라면 2로 나누기

2. 1을 빼서 3으로 나눠진다면 1을 빼기

3. 3으로 나눠진다면 3으로 나누기

4. 1을 뺴서 2로 나눠진다면 1을 빼기

5. 2로 나눠진다면 2로 나누기

6. 1 빼기


이런 식으로 우선순위를 정해봤습니다

하지만 제출해보니 틀렸습니다가 떴습니다

테스트 케이스, 또 다른 숫자를 넣어보고 생각해 보았는데 어디서 틀린 것인지 감이 안옵니다 반례가 있을까요???

bamgoesn   2년 전

반례 몇 가지 드립니다.

그리디적 접근을 시도하신 건 좋지만, 그리디에는 언제나 그것이 정당하다는 것이 확실해야 합니다. (다만 가장 작은 반례가 40이어서 문제점을 찾기 어려울 만했다고 생각하긴 합니다)

1을 빼서 3으로 나눠진다고 해도 짝수라면 반으로 나누는 게 빠를 수도 있습니다. 물론 실제로 1을 빼는 게 빠를 수도 있겠죠.

댓글을 작성하려면 로그인해야 합니다.