12931. 두 배 더하기

·2025년 11월 3일

백준 알고리즘

목록 보기
293/325

문제 해결 전략

  • 한회에 선택할 수 있는 최대 경우의 수는 51회다. 50으로 하자.
    -> 상태 공간 트리 50개를 계속 반복해서 표현하는 거는 비효율적

생각해보기

  • 결과값이 도출되어 있고, 모든 배열 0값에서부터 시작되는 구조이므로, 반대로 생각해보았다.

-> 결과값에서 0으로 만들기.

그리디 : 역방향 접근.

  • 개념.

  • 이유
    : 2의 배수로 나누는 것이 최소값을 만드는데 효과적이라고 생각함.

틀린 첫번째 코드 : 다시는 하면 안되는 실수. -> 틀려서 뭐가 잘못됬는지 당황해서 해맬수 있다.

  • 반례
    : 4 3 2
    : 3이 홀수 여서 빼기 진행하는데 4가 있는 배열부터 뺄셈을 진행한다...

  • 반례를 생각하기에 앞서서 모든 배열에 짝수가 아니면 else로 들어온다.

-> 그러면 짝수가 아닌 값만 잡아서 빼기 1을 해야하는데
그런거 상관없이 바로 계산을 진행해서 틀림.

정답 코드

  • 짝수 아닌 거를 찾아서 1을 뺌

전체 재귀 코드

  • 그동안 배운 재귀를 사용해서 작성한 코드

profile
🔥🔥🔥

0개의 댓글