브루트 포스 BOJ 1182번에 관한 질문이 있습니다!
풀이 1번 (기본)에서 대부분의 코드를 이해했습니다.
그런데
# 인덱스가 lev인 원소 선택 X
search(lev + 1)
에서 잘 이해가 되지 않습니다.
혹시 lev이 0일 경우인가요?
답변 1
0
안녕하세요. 내꿈은프로틴부자님!
풀이 1번의 기본 풀이의 기본 원리는 문제에서 주어진 리스트 각 원소를 선택하는 경우와 선택하지 않는 경우를 모두 체크하여 합이 S가 되는 경우를 카운트 하는 것입니다.
코드에서 주어진 리스트의 각 원소의 지점을 lev로 나타내고 있으며, search(lev) 메소드를 통해 lev 지점을 선택하는 경우와 선택하지 않는 경우를 각각 구현했고, 재귀적으로 다음 lev를 선택하도록 search(lev + 1)를 호출하고 있습니다.
lev 지점의 원소를 선택한 경우엔 choose 리스트에 담고, 다음 지점을 선택하기 위해 search(lev + 1)을 호출합니다. 이후 재귀가 모두 끝난 뒤 choose에 담긴 원소를 제거해줘야함으로 choose.pop()을 해주고 있습니다.
lev 지점의 원소를 선택하지 않은 경우엔 곧바로 다음 지점의 원소로 가기위해 search(lev + 1)만 해주고 있는 것입니다.
재귀적으로 짜여진 코드이기 때문에 직관적으로 이해가 어려울 수 있는 풀이 코드입니다.
다시 한 번 제 설명과 함께 쭉 이해해보시고, 그래도 이해가 안되시면 재질문 남겨주세요.
감사합니다. :)
Iterable 관련 설명 중 의문점
1
74
1
DP 알고리즘 index 0 이유?
0
80
2
백준에서 queue.PriorityQueue() 사용 시 런타임에러가 납니다.
0
78
2
(시간 초과) BOJ 1342 관련하여 질문이 있습니다
1
80
2
BFS, DFS
0
105
2
이중연결리스트에 관한 수업 내용도 있을까요?
0
98
1
영상에서 설명이 잘못됐고 자막이 맞는 내용이라고 자막에 표기
0
113
2
최대값 int(1e6, 1e7, 1e8) 기준
0
273
2
섹션 3 BOJ 1342 //= 연산자 관련
0
88
3
라이브러리 사용
0
118
2
2번 구현 방법 질문 있습니다.
0
168
1
브루트 포스 풀이
0
144
2
다익스트라 음수 간선
0
160
1
종료 조건
0
118
2
BOJ 1342 메모리초과 관련
0
123
2
진짜 엄청나네요. 이 가격에 새로운 컨텐츠 추가라니
0
216
1
섹션3 브루트포스 알고리즘 1342 풀이1 질문
0
152
2
boj 3020
0
128
1
강의 내용 중 백트래킹 존재 여부
0
156
1
제가 공부하는 방법이 괜찮은지 궁금합니다
1
264
2
DP 11053관련 질문있습니다.
0
122
1
17609 투포인터 문제를 재귀로 풀 경우가 궁금합니다!
0
138
3
3020번 풀이 코드관련 질문있어요
0
172
2
재귀 관련 문제 관찰할 때 질문
0
198
1





