[백준 / BOJ] 15652번 N과 M (4) (C++, Python)◎ 자료구조와 알고리즘/백준(BOJ) 문제풀이2022. 7. 31. 13:33
Table of Contents
반응형
링크 : https://www.acmicpc.net/problem/15652
문제
문제 풀이
앞선 문제들(N과 M (1), N과 M (2), N과 M(3))과 같은 맥락을 공유하는 문제다. 특히 N과 M(3)과 아주 유사하다.
C++ 상세 풀이
더보기
전 문제와 유사하게 해당 문제는 굳이 visited를 사용할 필요가 없다. 비내림차순으로 출력하면 된다고 했으니, C++의 경우는 간단하게 이전 숫자와의 크기를 비교하도록 조건문을 하나 추가해준다.
if (v[val - 1] <= i)
Python 상세 풀이
더보기
파이썬의 경우에는 빈 리스트를 선언했고, dfs에 들어왔다 나갈 때마다 append, pop 연산이 이루어지니 위의 조건문을 선언하는 방법은 indexerror이므로 불가능하다. 대신 파이썬은 dfs함수 안에서 for문을 돌 때, i를 인자로 건네줘 i부터 다시 for문을 돌도록 구현했다.
for i in range(start, N + 1):
res.append(i)
dfs(N, M, i)
res.pop()
C++ 코드 전문
Python 코드 전문
소감
반응형
'◎ 자료구조와 알고리즘 > 백준(BOJ) 문제풀이' 카테고리의 다른 글
[백준 / BOJ] 14888번 연산자 끼워넣기 (C++, Python) (0) | 2022.08.06 |
---|---|
[백준 / BOJ] 9663번 N-Queen (C++, Python) (0) | 2022.08.05 |
[백준 / BOJ] 15651번 N과 M (3) (C++, Python) (0) | 2022.07.27 |
[백준 / BOJ] 15650번 N과 M (2) (C++, Python) (0) | 2022.07.09 |
[백준 / BOJ] 15649번 N과 M (1) (C++, Python) (0) | 2022.07.07 |
@Reo :: 코드 아카이브
자기계발 블로그