dydsj0920   2년 전

백트래킹 한참 연습중입니다. 제가 문제를 만들었는데요. 만들어놓고 백트래킹으로 풀려는데 못풀겠네요...ㅠㅠ

0~9까지의 숫자 카드 10개가 적혀 있습니다. 이 중 n개의 숫자 카드만을 뽑아 만든 n자리 숫자중 짝수인 경우의 수를

오름차순으로 모두 출력하시오. (반드시 n장을 뽑아야 하며 중복된 숫자 010과 같은 숫자는 나올 수 없습니다.)

- 예시 -

입력: 3

출력:

012

014

016

018

022

024

026

032  <- 저같은 경우는 이렇게 다음 자리 숫자가 이전 자리의 숫자보다 작게 나오는 경우가 안뽑힙니다..

034

036

038

042 <- 저같은 경우는 이렇게 다음 자리 숫자가 이전 자리의 숫자보다 작게 나오는 경우가 안뽑힙니다..

...

참고) 뭐 다른 해결 방법이 있을 수도 있겠지만..백트랙킹으로 풀고 싶은데 혹시 백트래킹으로는 풀 수가 없을까요?

rubix   2년 전

36번째 줄을 아래와 같이 고치면 됩니다.

djm03178   2년 전

이와 아주 유사한 문제들이 https://www.acmicpc.net/workbo... 에 있습니다.

dydsj0920   2년 전

@rubix 아 일단 중복된 카드가 뽑히면 안되는데 저 경우는 다 나오네요ㅜ

dydsj0920   2년 전

@djm03178 한 번 풀어 보겠습니다~

rubix   2년 전

중복 카드 제거는 지금까지 사용한 카드들을 저장해서 풀 수 있습니다.

dydsj0920   2년 전

@rubix 도움 많이 됐습니다. 감사합니다~

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