08 Sep 2020

[BOJ 15663]

N과 M (9~12)

문제 바로가기 : https://www.acmicpc.net/problem/15663
문제 설명은 위 링크에서 확인해주시길 바랍니다.

solution


review

순열을 출력하되 같은 순열이 출력되지 않도록 해야한다. 즉, 중복을 허용하지 않는다.
기본적인 구조에서 현재 인덱스에서 이전 값이 무엇이었는지 체크하는 prev가 추가되었다.
dfs()의 지역 변수이기 때문에 재귀로 호출되는 각 함수마다 prev 값은 독립적이다!
따라서 각 인덱스의 이전값에 대해 각각 제약을 걸어줄 수 있다.

N과 M (10)

solution


review

BOJ 15663: N과 M (9)에서 전역 변수 cur만 추가시켰다.
변수 이름만 cur이고 사실 prev에 가깝지만.. cur는 직전에 입력된 변수의 값을 저장한다.
그리고 다음에 입력되는 값이 cur보다 작으면 진행되지 않도록 한다. (조건)
dfs()가 for loop에서 끝났다면 cur을 0으로 초기화 해줌으로서 다음 차례에 영향을 주지 않도록 하자.

N과 M (11)

solution


review

BOJ 15664: N과 M (10)에서 약간 수정했다.
일단 같은 숫자를 여러번 선택할 수 있기 때문에 주어지는 숫자가 여러번 나오는건 의미가 없다. 그래서 중복을 제거해줬다.
이후 숫자는 최대 m번 나올 수 있으므로 새로운 배열 arr에 숫자를 m번 넣어주고 dfs()에 돌려줬다.

N과 M (12)

solution


review

BOJ 15664: N과 M (10) + BOJ 15665: N과 M (11)
N과 M 시리즈 끝!

Location

Icheon, KR

Email

iteratively@naver.com

Social

-->