5주차 개념강의 중 그리디의 개념에 대해 질문드립니다
안녕하세요
그리디를 배우면서
1) 무식하게 > 2) DP > 3) 그리디 순서로 문제를 접근해보라고 배웠습니다.
그와 함께 그리디는 현재 인덱스를 기준으로 최선의 해라고 생각되는 것이 전체의 최적해가 될 수 있음을 갖고 푸는 것이며, 최적부분구조 및 탐욕적 속성을 갖는 경우에 사용한다.
>> 하지만 우리는 '이게 되지 않을까?'라는 생각으로 접근하여 그리디를 사용한다.
라고 배웠습니다.
DFS, BFS, 비트마스킹 완전탐색, 백트래킹 등은 그래도 A=B이다 라는 식으로 해당 개념이 공식처럼 와닿았습니다. 하지만 그리디의 경우 단순히 "정렬 및 우선순위 큐를 활용하면 그리디다"는 아닌 것 같습니다.
제가 이해한 바로는
1) 그리디는 말 그대로 '이렇게 풀면 되지 않을까?'라고 시도해보는 접근방법이다 - 명확한 공식이 있는 것이 아니다 -
2) 하지만 그리디는 정렬 및 우선순위큐를 활용하는 문제가 빈번하다
3) 정렬 및 우선순위큐로 풀리지 않는다면 그 외의 다른 최선의 방법을 강구해본다.
이렇게입니다.
제가 그리디에 대해 이해한 것이 맞을까요?
3)의 경우로 가야한다면 다른 방법이 있는 것인지, 경험에 의해 고민해가며 해결해나가야 하는 것인지 궁금합니다.
감사합니다.
답변 1
1
1) 그리디는 말 그대로 '이렇게 풀면 되지 않을까?'라고 시도해보는 접근방법이다 - 명확한 공식이 있는 것이 아니다 -
네 맞습니다. 휴리스틱에 가깝죠. 근데 이걸 원리적으로 푼다면 이렇게 풀어야 해요. 어떠한 점화식을 작성합니다. 귀납법이든 뭐든 증명을 합니다. 해당 명제를 기반으로 코드를 구축해서 푸는 것이 정석입니다.
하지만. 이런 것을 코테에서 하기에는 어려워요. 그래서 그냥 ~~ 하면 되지 않을까? 생각하고 푸시면 됩니다.
2) 하지만 그리디는 정렬 및 우선순위큐를 활용하는 문제가 빈번하다
맞습니다. 그러나 빈번하다라고 해서 그렇게 단정지으면 안되요
https://blog.naver.com/jhc9639/222093730646
이걸 잠깐 볼까요? 이 문제는 그리디 문제인데 정렬과 우선순위큐를 쓰지 않았죠? 먼저 정렬이나 우선순위큐를 생각하는 것은 좋으나 단정지으시면 절대 안됩니다.
3) 정렬 및 우선순위큐로 풀리지 않는다면 그 외의 다른 최선의 방법을 강구해본다.
네 좋은 접근법이에요.
1-E질문입니다!
0
533
2
3-L 틀린 부분 피드백 부탁드립니다.
0
835
2
1-A문제 순열재귀함수 질문입니다.
0
396
1
1-A 일곱난쟁이문제입니다
0
469
1
문제 풀 때 방향성에 대해
0
809
1
맥에서 vs code로 실행 관련 질문입니다
0
530
1
17071번 메모리 초과
0
389
1
1-C질문입니다!
0
428
2
2-B BFS 시간초과질문
0
637
2
1-O 13번 라인
0
445
1
6-J 놀이공원 문제 질문
0
388
1
구현관련 질문
0
491
1
강의 교안
0
321
1
실력을 더 올리고나서 강의를 보는 것이 맞을까요?
0
550
1
안녕하세요! 재귀함수에 관해서 질문드립니다
0
539
1
1-K
0
481
2
3-G번 질문있습니다.
1
479
3
3-C 실행 시간 질문드립니다.
0
502
1
4-A 문제 풀이 질문있습니다.
0
601
2
비트마스킹 연산자 "1의 보수" 영문 표기법
0
441
1
격자탐색 문제에서 BFS 시간복잡도 질문드립니다.
0
349
1
3-O go 함수 질문 드립니다.
1
452
2
4-A 출력 질문
0
306
1
1주차 1-O 질문드립니다
0
264
1





