[SWEA 1952] [모의 SW 역량테스트] 수영장

업데이트:

문제

  • SWEA 1952
  • 문제의 저작권은 SW Expert Academy에 있습니다.

접근방식

처음에 조합으로 접근해서 전체 12개월 중 3달요금으로 사용할 달을 뽑은 후, 나머지 달을 또 일or월요금으로 사용하는 경우로 생각하려고 했다.
그러나 코드가 점점 복잡해지면서 스택오버플로우가 발생해서 새로운 접근법을 생각하다가 결국 다른 코드로 힌트를 얻어 해결하였다.

이 문제는 완전탐색 문제로 1일, 1달, 3달, 1년 요금을 사용하는 경우를 재귀적으로 호출해주면 된다.
코드가 굉장히 간결해지는데 아직 재귀 과정을 이해하는것이 어려워서 그림을 그려야 이해할 수 있었다.

  1. 필요한 변수는 1일,1달,3달,1년치 요금을 저장할 fees배열, 12달의 각 이용일수를 저장할 months배열, 최소 일수를 저장할 Ans이다.
    첫번째 테스트케이스로 생각해보면 초기 셋팅은 다음과 같다.

코드