본문으로 바로가기

알고리즘 문제풀이(PS) 시작하기

category PS - OJ/BOJ 2016. 12. 23. 20:17

이런건 고수들이나 써야 하지 않나 싶지만,

그래도 1년정도 공부하면서 이 분야를 어떻게 시작해야 할지 써보려 한다.

라고 운을 뗀다음 열심히 내 얘기만 했던 후속편이다.

 

내 인생사가 궁금하신 분들은 이 글의 전편을 읽어볼만 하다.

http://plzrun.tistory.com/entry/PS공부를-하면서-좌절감을-느낀-분들이-읽어봤으면-하는-나의-2016년

 

아무튼 그럼 어떻게 공부해야할까?

 

나는 아직도 PS(Problem Solving)를 잘 못하지만,

주변에 처음 시작하는 사람들이 내게 PS 공부 방법에 대한 고민을 자주 털어놔서 글로 정리해보려고 한다.

 

ps를 처음 시작하면 online judge에 들어가서 몇 문제를 풀어봤을 것이다.

근데, 문제를 풀어봐도 내 실력이 느는 느낌도 안나고,

문제 하나 푸는데 시간도 엄청 걸리고,

풀 수 있는 문제도 거의 없다.

 

이때 주변에 잘하는 사람이 있어서 도움을 받으면 최고로 좋은 케이스지만,

보통 나 같은 사람들은 도움 받을 사람도 없고

인터넷을 뒤적뒤적하고 책을 찾게 된다.

 

근데 또 책은 왜이렇게 진도가 안나가?

코드를 읽으면 자꾸 모르는 STL이 등장하고,

이거 찾아보고 익히는데 또 한참 걸리고,

나중에 돌아와서는 다시 코드 로직을 뜯어봐야하고

다시 내가 문제를 직접 풀어보는데 헤매고.. 그러다보면 하루종일 붙들고 있어도 3~4페이지도 못나간다.

 

그렇다고 문제부터 풀면서 시작하자니 어떤걸 풀어야 할지도 모르겠고,

이것저것 건드려는 보는데, 역시나 풀어봐야 실력이 전혀 오르는거 같지 않다.

 

어디서부터 문제일까?

어디부터 공부해야할까?

어떤 문제를 풀어야 할까?

도움은 어디서 받아야 할까?

문제를 이렇게 오래잡고 있어도 될까?

모르는 STL은 한방에 묶어서 누가 해결 좀 해줬으면 좋겠다...

 

이런 생각을 가진 분들이라면 이 글을 읽어볼만 하다.

 

 

내가 항상 하는 말이 있는데,

모르는 사람은 본인 스스로가 무엇을 모르는지 모른다.

자기 스스로가 모르고 있다는 사실 조차 모르는 것이다.

그렇기 때문에 뭘 물어봐야 하는지도 모른다.

그래서 모르는 부분이 무엇인지부터 알아야한다.

 

모르는 부분은 어떻게 알 수 있을까?

사실 제일 쉬운방법은 주변에 잘하는 사람에게 도움을 청하는 것이겠지만,

이 글을 읽고 있는 사람은 아마도 주변에 잘하는 사람이 없는 상태일 것이므로

다음과 같은 문제를 풀어보면서 내가 아는 부분은 넘기고 모르는 부분을 빠르게 채워나가는 것이 좋다.

처음부터 책과 씨름하지 말자. 알고리즘 시작도 못해보고 퍼지기 딱 좋다.

 

 

BOJ에서 다음 문제들을 쭉 순서대로 풀어본다.  boj.kr/문제번호 <= 형태로 검색하면 된다.

입출력 - 2557, 1000, 2558, 10950, 10951, 10952, 10953, 11021, 11022, 11718, 11719, 11720, 11721, 2741, 2742, 2739, 1924, 8393, 10818, 2438, 2439, 2440, 2441, 2442, 2445, 2522, 2446, 10991, 10992

 

입출력 문제들을 풀 때 10분이상 이 문제를 붙들고 있는 경우, 그건 입출력에서 뭔가 모르는 부분이 반드시 있다는 뜻이므로 이전 질문들을 무조건 찾아보고 다른 사람이 푼 코드를 반드시 봐야 한다.(이건 should가 아니라 must다.) 이 때 코드 길이 줄이려고 이상하게 짧은 코드들 많은데, 그런건 보지 말고 랭킹 100위권 안에 드는 사람들 중 인덴트 멀쩡한 코드를 보면 된다.

 

그 다음 DP문제를 풀어보자.

 

DP - 1463, 11726, 11727, 9095, 10844, 11057, 2193, 9465, 2156, 11053, 11055, 11722, 11054, 1912, 2579, 1699, 2133, 9461, 2225, 2011, 11052

백준님은 모르는 문제가 있으면 2시간을 넘기지 말라고 했는데, 나는 이런 기초 문제는 1시간을 넘길 필요가 없다고 생각한다. 흔히들 PS를 처음 접하는 사람들이 하는 큰 실수가 모르는 문제를 하루종일 붙들고 있는 건데, 우린 수학이란 과목을 정규과정만으로는 초등학교 6년, 중학교 3년, 고등학교 3년 동안 배웠다. 그런데 알고리즘에는 그만한 시간을 투자할 수 없다. 그러나 알고리즘의 양은 그만큼 방대하다. 그러니 수학문제 풀듯이 계속 붙들고 있는건 미련한 짓이다. 이건 마치 덧셈,곱셈 정도만 아는 상태에서 미적문제를 푸려는 시도와 같다고 생각한다. 앞서 말했다시피 모르는 사람은 뭘 모르는지 모르는게 문제다. 본인이 미적에 대한 개념이 있는지 조차 모르는데 그 문제를 백날 붙들고 있어봐야 풀릴까? 당연히 아니다... 일단 1시간 넘어가면 그 문제 풀 확률은 거의 없다고 봐도 된다. 그러니 바로바로 찾아봐라. 특히 이 문제들은 정말 기초 문제들이고 사람들이 많이 풀었기 때문에 네이버나 구글에 검색하면 자세한 설명과 코드가 넘쳐난다.

 

반드시 지키자! 1시간 넘어가면 풀던 짓을 그만두고 반드시 AC받은 코드 찾아보기 (설명이 꼭 달려있는 코드를 읽자)

한 문제 가지고 며칠씩 씨름하고 풀어봐야 다음에 풀지도 못할뿐더러 아주 비효율적인 방법으로 푸는 경우도 있을 거다.

그러는 것 보다 이 문제의 답을 빨리 확인하고 이와 유사한 문제들을 여러개 풀어제끼는 것이 아주아주 현명한 방법임을 명심하자.

 

그리고 푼 다음에는 반드시 다른 사람의 코드를 봐야 한다.

특히 자신만의 가상의 스승을 잡고 그 분의 코드를 보는 것도 좋은 방법이라 생각한다.

너무 갓갓들은 이상한 방식으로도 짜는 경우도 있기 때문에 적당한 사람을 선택해야 한다.

그 사람의 코드를 보면 잘 이해가 되고, BOJ랭킹은 100위 안에 드는 사람이면 적당하다.

 

근데 처음부터 끝까지 하나하나 세밀하게 볼 필요는 없다.

로직 대충 비슷해보이면 스킵하고, 나랑 완전 다른 방법인데 참신하면 들여다보고 하는거지 뭐...

 

 

그 다음 이런 저런 문제들을 풀어보자.

2751, 11650, 11651, 10814, 10825, 10989, 11652, 11004, 10828, 9012, 10799, 10845, 10866, 10808, 10809, 10820, 2743, 11655, 10824, 11656, 1406, 1158, 1168, 10430, 2609, 1934, 1850, 9613, 11005, 2745, 1373, 1212, 2089, 11576, 1978, 1929, 6588, 11653, 10872, 1676, 2004

 

여기까지 다 풀고 나면 이제 재밌는 그래프 문제(bfs, dfs)를 풀어보자.

그래프 - 1260, 11724, 1707, 10451, 2331, 9466, 2667, 4963, 7576, 2178, 2146, 1991, 11725, 1167, 1967

 

코포(Codeforces) div2에서도 자주 등장하는 binary search 문제도 풀어보자. (여기엔 ternary search도 있다.)

이분탐색/삼분탐색 - 1654, 2805, 2110, 10815, 10816, 11662

 

분할정복도 풀어보자~

분할정복은 DP랑 느낌이 비슷한데, 부분 문제를 dp테이블에 저장할 필요가 없는(cache질을 할 필요가 없음) 부분이 DP랑 다른 것 같다.

분할정복 - 11728, 1780, 11729, 1992, 2447, 2448, 1517, 2261

 

그리디 알고리즘은 매 순간 최선을 선택한다라는 말 때문에 매우 쉽게 들리지만, 매 순간의 선택이 최선이 되도록 방법을 정하는 것 자체가 매우 어렵기 때문에 알고리즘중에 사람들이 가장 어려워 한다.

그리디 - 11047, 2875, 10610, 1783, 1931, 11399, 2873, 1744

 

그 다음은 완전탐색(exhaustive search)이다.

완전탐색은 '말하는 대로' 구현하는 문제다.

그냥 무식하게 구현하면 될 것 같지만, 여기서도 고수의 코드를 보면 그들의 고급진 숨결을 느낄 수 있다.

처음에는 이런 문제도 어렵지만 나중에는 쉬워진다.

이걸 실수없이 빠른 시간안에 잘 짜야 쉬운 문제들을 척척 풀어나갈 수 있다.

완전탐색 - 1476, 1107, 1451, 9095, 10819, 10971, 1697, 1963, 9019, 1525, 2251, 2186, 3108, 5014, 1759, 2580, 1987, 6603, 1182, 2003, 1806, 1644, 1261, 1208, 7453, 2632, 2143

 

여기까지 푸는게 딱 4주 분량이다. (BOJ 문제 부분만)

여기까지 푸는데 4주를 안넘기는게 좋다고 생각한다. 왜냐면, PS를 하면서 느낀건데, 단기간에 몰아서 왕창 할 수록 얻는 양은 어마어마하게 달라지는 것 같다.

보통 그리디 문제 전까지 2주를 잡고 그리디랑 완탐부분을 2주 잡으면 될거다. (그리디랑 완탐 양이 꽤 많다. 저 문제 다 풀기 정말 힘들다ㅠ)

 

이 정도 했으면 이제 종만북(알고리즘 문제 해결전략)을 보자.

(http://book.naver.com/bookdb/book_detail.nhn?bid=7058764)

 

2018.11.23 수정 - (원래 빨간책이란걸 추천했으나, 지금은 추천하지 않는다.)

 

나는 이 단계에 오기 전에 종만북 보는 것을 매우 비추한다.

물론 처음 부터 종만북보고 정말 잘하는 분들도 있지만, 종만북은 절대 초보자용이 아니다.

 

종만북 보면 어디어디 선택해서 보라고 나와있는데

나는 그것보다 1권 마지막 수치해석부터 읽는 것이 좋다고 생각한다. (어디까지나 개인적인 생각입니다.)

그리고 기하는 skip~!! 기하는 종만북 다 씹어먹을때 쯤 읽는 것을 추천한다.

 

그리고 2권에 나오는 그래프 부분이 정말 재밌다.

 

일단 이렇게 진도가 쭉쭉 나가야 뭘 하는 재미라도 있다.

그리고 2권 다 봤으면 1권 보면 된다.

(종만북 보면서 당연히 알고스팟 문제들 다 풀어봐야 한다.)

 

 

그 다음 노란책을 보자. (http://book.naver.com/bookdb/book_detail.nhn?bid=6750543)

이거 평점이 상당히 안좋은데, 번역이 안좋아서 그렇다.

그런데도 이 책을 추천하는 이유는, 여기까지 공부한 상태라면 오타랑 어색한 표현들이 그냥 다 보이기 때문이다.

 

노란책의 장점은 네트워크 플로우 부분이라 생각한다.

또 전체적으로 책이 매우 얇으면서도 있을건 다있고 정말 보면 볼 수록 갓책이라는 느낌이 든다.

특히 종만북은 네트워크 플로우 부분이 너무 없고 (Dinic, MCMF도 없고..)

문자열 파트도 처음 보고 이해하기가 좀 어려웠는데

그런 부분들을 노란책이 다 메꿔주는 것 같다.

 

어차피 노란책을 볼 때 쯤이면, 취업 걱정 할 일이 없을거고

시작하기 전의 나 자신을 돌아보면 참 많이 발전했다는 것을 느낄 수 있을 것이다.

 

그럼 이제 다시 아까의 질문들을 떠올려보자.

 

어디서부터 문제일까?

어디부터 공부해야할까?

어떤 문제를 풀어야 할까?

도움은 어디서 받아야 할까?

문제를 이렇게 오래잡고 있어도 될까?

 

요약한 답변은 아래와 같다.

 

어디서부터 문제일까? 내가 모르는게 뭔지 몰라서 문제다.

모르는게 뭔지 어떻게 아냐? 문제풀면서 모르는걸 채워나간다. 책을 처음부터 보는 정공법이 아니라 기본문제를 풀면서 모르는 부분을 빠르게 채워 나가는 속성법이다. 다만, 반드시! 명심해야 할 것은 기초 입출력문제에서 10분이 넘어가면 반드시 모르는 부분이 있다는 것이다. 꼭! 잘하는 사람의 코드를 찾아보고, 속성법인 만큼 빠르게 모르는 것들을 캐치하고 정공법으로 돌아가야 한다.

어디부터 공부해야할까? 언급한 BOJ문제를 풀고 종만북을 본다. 종만북 다 보고 나면 노란책으로 입가심을 하자.

도움은 어디서 받아야 할까? 밑에 링크를 적었다. (BOJ Slack)

문제를 이렇게 오래잡고 있어도 될까? 입출력 문제를 제외하고 다른 문제들은 1시간으로 생각하자. 시간이 지나면 답을 보고 푼다.

  

물론 이러한 내용들은 사실 혼자 끙끙거리는 것 보다 강의를 듣는게 백배 낫다고 생각한다.

나도 백준 강의를 통해 해결했기 때문이다.

강의를 듣게 되면 위와 같은 방식으로 문제풀이를 진행하는데,

내가 백날 입출력은 10분 넘기면 모르는거라고 떠들어대도

막상 공부시작하는 사람들은

"에?! 뭐야 이거 입력하고 출력하는걸 뭐하러 해?"

"달력 출력은 시간낭비지 이걸 해서 얻는게 뭐지?"

라는 생각을 하고 그냥 넘기거나 대충하는 사람들이 있다.

 

입력받고 그냥 그대로 출력하는 문제는 30초,

날짜를 입력받고 요일을 출력하는 문제나 모두 3분 안에 코딩이 가능하다.

빠른 시간안에 코드를 짜지 못한다는건 결국 코드가 형편없다는 것을 의미한다.

빠른 시간안에 짤 수없는 방향으로 생각을 했기 때문에 코드가 빠르게 완성되지 못하는 것이다.

이걸 누군가 알려주지 않는다면 계속 우물안 개구리에 머물러 있을 확률이 높다.

이런 부분은 강의/선생님을 통해서 해결하는게 베스트이긴 하다.

 

당연히 내가 백준 강의 홍보대사를 맡은것도 아니고 그 분한테 광고비를 받는것도 아니다.

오프라인 강의가 비싸다면 온라인강의라도 듣는 것을 추천하지만,

온라인은 들어본적이 없으므로 판단은 본인 몫이다.

 

현재(2016년)는 강의마다 9만9천원에 올라와 있는데,

내가 듣는 것을 추천하는 온라인 강의는 기초,중급1,중급2 부분이다.

이게 오프라인 강의에서는 입출력부터 시작해서 네트워크 플로우 나오는 부분까지를 말한다. (아마 2달치로 구성되어 있을 것이다.)

 

여기까지가 기초다.

 

여기까지 하고나면 알고리즘이라는 거대한 숲을 보는 안목이 생기고

STL을 몰라서 헤매는 부분이 자연스럽게 해결된다.

안보이던 종만북도 쉽게 읽히고,

스스로 공부하는 데 무리가 없게 된다.

 

만약 강의에 거부감이 있다면,

처음에 언급했던 방법을 따르는 것을 추천한다.

 

그럼 다들 즐거운 PS 하시길~!

 

 

 

 

 

 

 


 

내가 자주 이용하는 사이트는 굵은색과 글씨크기로 중요도를 표시했다.

C++ Referencehttp://cppreference.com (www.cplusplus.com 거기보다 십만배 좋다고 생각하는 C++ reference 사이트다. 디자인도 좋고 훨씬 깔끔하고 훨씬 보기가 좋다.)

백준 온라인 강의: https://code.plus

백준 온라인 저지: https://boj.kr

알고스팟 종만북 문제집https://algospot.com/judge/problem/list/?tag=&source=알고리즘+문제+해결+전략&author=

정올 온라인 저지: http://www.jungol.co.kr

(정올 문제를 BOJ에서 풀다가 WA를 받은 경우 정올 가서 서밋해보면 틀린 테케를 확인할 수 있다. 다만, 문제 이름은 서로 다를 수 있으므로 출처를 통해 알아서 잘 찾아야 한다. ㅋ 테케는 BOJ가 다른 OJ보다 훨씬 센 편이다. 다른 곳에서 돌아가는 코드가 BOJ에서 안돌아가는 경우를 심심찮게 확인할 수 있는데, 보통 공식 테케가 허접한 경우일 때가 많다.)

더블릿: 단계별 학습으로 유명한데, 유료다. 알고스팟과 BOJ가 있는 마당에 돈을 내면서까지 이용해야 하는지는 잘 모르겠다.

koi4study: http://koistudy.net (유용한 자료가 많다. 특히 여기서 소개하는 hustoj가 있는데, 초딩도 쉽게 만들 수 있을만큼 설명이 되어있다. 나만의 OJ를 원한다면 첫 OJ로 경험하기엔 아주 딱인것 같다. 그리고 여기서 소개되는 두 선생님의 사이트가 있는데, 가보면 어린 친구들이 많은걸 볼 수 있다. 직접 이용을 하진 않아서 그 저지가 어떤지는 잘 모르겠다.)

BOJ Slack: https://www.acmicpc.net/board/view/2788 (여기서 슬렉 초대메일을 받을 수 있다. 초대 메일이 안보인다면 Junk Mail에 들어가 있을 수도 있으므로 잘 찾아볼 것. 갓들의 피드백을 바로바로 받을 수 있다. 여기가 아니었다면 내가 PS를 1년가까이 지속해서 할 수 있었을까?? 나를 지탱해준 힘은 여기인듯 하다.)

 

 

외국 온라인 저지

코드포스http://codeforces.com (국내에서 가장 많이 이용하는 외국 사이트가 아닐까?)

탑코더: https://community.topcoder.com/contest/arena/ContestAppletProd.jnlp (링크 누르면 다운로드가 된다.)

탑코더 공식 홈페이지에 들어가보면 뭔가 그럴싸하게 보이지만, 만들다 만거라고 보면 된다. ps분야 말고도 이거저거 하는게 많은데, 다른 분야는 모르겠고 ps arena에 들어가보면 beta버전이라고 되어있는데 내가 알기로 여기선 뭔가 contest를 진행할 수가 없다. 다들 위의 경로에서 다운받은 옛날 스타크래프 배틀넷 같이 생긴 어플을 통해 콘테스트를 치룬다. 와 정말 점점 느끼는 거지만 BOJ만큼 현대적인 인터페이스를 제공하는 온라인 저지가 없다. 코포도 보면 가관일때가 있다.(하다보면 앎) 아무튼 탑코더는 해보면 아는데, 희한하게 문제에서 제시한 조건에 맞는 클래스를 생성해서 제출해야 하며 스타 배장같이 생긴 arena에서 코딩 맞짱을 뜨는 느낌이 든다.

uvaojhttps://uva.onlinejudge.org (acm-icpc 출제자들이 여기서 문제를 냈다는거 같은데, 엄청 오래됐고 엄청 유명한 사이트다. 웹 UI는 극악이다. 해보면 안다. 여기가 워스트라고 생각 됨) ☞ 그래서 반드시 https://uhunt.onlinejudge.org 사이트가 병행된다. uvaoj를 쓸 수 있게끔 해주는 필수 사이트!

poj: http://poj.org (북경대 온라인저지: 노란책때문에 처음 알게 됐는데, 이 저지도 상당히 유명하다.)

spoj: http://www.spoj.com (이런 저지도 있다.)

a2oj: https://a2oj.com (여기 가면 해외 유명 온라인 저지랑 전부 연동이 가능하다. 여기서 보여주는 저지들이 아마 해외에서 제일 유명한 저지들이 아닐까 싶다.)

 

 

요즘 내가 들어가는 사이트 순서대로 글자 크기와 Bold체를 써서 나태내봤다.

눈에 띄는 정도가 중요도 순서라고 봐도 무방하다.

 

 

===========================================================================================================================

 

 

 

 

- 2018.10.06 -

 

회사 시험대비 질문하시면 답변 안하겠습니다.

지름길은 없습니다.

수능/논술 파이널 강의라고 해서 1주일에 100~200만원씩 하는 것도

지금까지 공부해온 친구들에게나 의미가 있습니다.

 

제가 위에 적은것들 반만했어도

국내 회사 어디든 합격합니다.

잘할 필요도 없습니다.

한 6개월만 해도 누구나 할 수 있거든요?

 

위에 돈 없이도 할 수 있는 모든 방법을 적어놨습니다.

다른 방법 그만 물어봐주세요.

다른 방법 없습니다.

시험까지 한달도 안남았는데,

이거 보고 취업준비로 알고리즘 시작하는건 이미 늦은거에요.

망한거라구요.

 

반년 더 준비하시면 됩니다.

 

'PS - OJ > BOJ' 카테고리의 다른 글

BOJ 14265 영선 수열  (0) 2017.01.14
1280 나무심기  (0) 2016.12.26
알고리즘 문제풀이(PS) 시작하기  (277) 2016.12.23
1328 고층빌딩  (0) 2016.12.09
13333 Q-인덱스 (Q-Index)  (0) 2016.12.09
8217 유성 (Meteors)  (0) 2016.11.19

댓글을 달아 주세요

  1. 이전 댓글 더보기
  2. tlagmlwns12 2020.06.18 22:34

    포스팅을 보고 열심히 하고있는 대회준비생입니다.. 저 많은 문제들을 풀면서 실력이 올라 너무 감사드립니다 제가 준비하고 있는대회가 그래프, 완전탐색 부분쪽인데 그쪽 분야 BOJ문제
    들을 보면서 어떻게 풀어볼지 방법은 생각 나는데 프로그램을 구현하는 부분에서 너무
    벽을 느낍니다. 프로그램 구현 실력을 향상시킬려면 문제를 많이 푸는것 밖에 방법이 없을까요? BOJ 14501 퇴사 문제와 1525 퍼즐 문제에서 구현에 벽을 느끼네요.... ㅠㅠ

    • BlogIcon plzrun 2020.06.28 12:19 신고

      많이 푸는 것 외에는 답이 없는 것 같아요.
      퇴사문제랑 퍼즐문제 언급하셔서 풀어봤는데 제가 입사하던 당시에는 딱 이정도 수준의 문제가 나왔던 것 같아요!

  3. 2020.06.29 17:24

    비밀댓글입니다

    • BlogIcon plzrun 2020.07.10 11:34 신고

      흠.. 수학 공부가 필요한 부분은 정수론 말고는 떠오르는게 없네요. 어떤 수학 문제가 막히는 건가요?

  4. BlogIcon ArcSage 2020.07.10 10:05

    이 글 덕분에 PS 첫걸음을 떼는데 굉장히 큰 도움이 되었습니다.
    감사합니다 plzrun님

  5. BlogIcon 달승 2020.07.10 14:06 신고

    많은 도움이 되었습니다 감사합니다~

  6. BlogIcon kahuz 2020.07.10 20:12 신고

    좋은 글 감사합니다. 직접 해보고 있자니 모두 맞는 말 같습니다. 잘 다니던 회사에서 나와 원하는 기업에 가기 위해 코테를 준비중인데 가끔 이 글을 보면서 마음을 다잡도록 할게요. 항상 좋은 일이 넘치시기 바랍니다.

  7. BlogIcon ㅎㅎ 2020.07.13 17:09

    읽으실진 모르겠지만 전체 방향 잡는데 도움 많이 됐습니다. 감사합니다 좋은 일 가득하세요:)

    • BlogIcon plzrun 2020.07.19 15:14 신고

      요즘은 블로그 잘 안하고 가끔 들어와서 읽는 편입니다.ㅎㅎ 저도 댓글 감사합니다~! 좋은 일 가득하세요~~

  8. 초보자 2020.07.27 12:27

    추천하시는 강의가
    알고리즘 기초(https://code.plus/bundle/7)
    알고리즘 중급(https://code.plus/bundle/9)
    이것들인가요??

    • BlogIcon plzrun 2020.08.24 02:00 신고

      답변이 늦어 죄송합니다.
      요즘 일이 너무 바뻐서 블로그에 들어오질 못했네요
      지금 들어가서 보니 추천했던 강의가 많이 세분화 된 것 같습니다.
      제가 추천한 강의는 현재 기초/중급/고급으로 나눠져있는 것 같아요.
      알고리즘 종합세트가 맞는 것 같네요.
      https://code.plus/bundle/10

  9. 30대에_비로소_시작 2020.08.04 00:39

    정말정말 감사드립니다... 많은 도움이 되었어요. 지금껏 알고리즘 공부를 하면서도 답보고 공부하게 되면 나중에 시험에 와서 구현할 수 없을거라는 생각에 계속 풀릴때까지 붙잡고 씨름했었습니다.... 하지만 막상 시험때 테스트를 해보면 시간이 부족해서 뒤에 풀 수 있었던 문제들은 풀지 못한채 앞에 풀었던 문제들 케이스 한두개 통과하지 못했던걸 가지고 계속 씨름하느라 연거푸 떨어지고 있었습니다. 이 글 참고해서 다시 시작하려 합니다. 정말 감사합니다

    • BlogIcon plzrun 2020.08.24 02:04 신고

      답변이 늦어 죄송합니다.
      도움이 되었다니 기쁘네요 :)
      저도 잘 안되긴 하지만 문제에서 요구한 부분을 잘 읽고 빠지는 케이스 없이 한번에 짜는게 중요합니다.
      보통 1~2개 빠진걸 실수로 생각하기 쉬우나 그런 에러조차 없도록 하는 코딩방법은 아예 다른 방법일 수도 있습니다.
      연습할 때에도 쉬운문제라고 그냥 지나치지 마시고 다른 사람들 문제 푼거 한두번 보고 지나가시면 더 좋을 것 같습니다 :)

      좋은 결과 있길 바래요~

  10. hi 2020.09.08 00:53

    플밍대회로 배우는 알고리즘 문제해결 책 샀다가 너무 어려워서 공부법 찾다가 우연히 plzrun님 블로그에 들어오게 됐습니다. 컴공과를 다니면서 항상 전공에 대한 불신이 있었고 (제 자신이 할 수 있을까 저에 대한 불신입니다.) 그러면서 점점 코딩과 멀어지고 친구들과 구글링으로 겨우 졸업만 했습니다. 졸업후 몇 년 하고 싶은 일을 찾다가 다시 돌아왔는 데 제가 해야할 건 결국 전공이더라구요. 늦게나마 흥미를 가지고 시작하려는데 그 누구도 알려주지 않던 질문에 대한 답을 plzrun님 블로그에서 찾게 됐네요. 지금 20년 하반기는 이미 시작해서 마지막에 남기신 말처럼 지름길은 없겠지만 제가 공부해야 할 길을 찾은 거 같아서 기쁩니다. 포스팅 해주셔서 감사합니다.

    • BlogIcon plzrun 2020.10.01 13:39 신고

      방향 잃고 헤맬때가 가장 무섭죠 ㅠ_ㅠ 길을 찾으신 것 같다니 다행입니다. 제가 도움이 됐다니 기쁘네요 ^-^ 더 도움이 될 수 있을진 모르겠지만 질문 있으면 언제든 댓글 남겨주세요~! 빠이팅!

  11. asdf 2020.09.12 15:15

    알고리즘을 어떻게 공부해야 할지 헤매고 있었는데
    많은 도움이 되었습니다. 감사합니다.

  12. Vnfdl 2020.09.20 21:19

    안녕하세요. 정말 도움이 되는 글인것 같아 너무 감사합니다.
    실례가 되지않는다면 질문 하나 드리겠습니다.
    종만북 읽기 전에 각 분야별로 풀어야될 질문들을 나열해 주셨는데 현재 제가 기본적인 입출력만 가능한 상태임에도 불구하고 저 문제들을 무작정 도전하고 모르면 다른 사람들 풀이 보면서 이해하는것만으로도 저 문제들을 다 풀 수 있을까요?
    그냥 아무 생각 없이 종만북을 사서 시작하려 했는데 이 글 보니 여러 생각이 들어 이렇게 질문드립니다.

    • BlogIcon plzrun 2020.10.01 13:42 신고

      네 입출력만 가능한 수준이면 종만북 펼쳐도 진도 나가기가 매우 어렵습니다. 제가 말씀드린대로 숲을 한번 가볍게 훑고 종만북 들어가시면 공부하기 많이 수월 하실 거에요~!

  13. 태태로 2020.10.01 22:43

    알고리즘 문제 풀다가 자괴감에 빠져있을때 이 글을 보고 다시 동기부여를 얻었습니다.
    조급해하지 않고 꾸준히 노력하겠습니다. 감사합니다 (--) (_ _) (--)

  14. Kkjkj 2020.10.15 16:21

    감사합니다
    진짜 개♬♪♪♬인가하고 책을 2권 샀는데도 잘모르니 진도도 안나가서 현타왔었는데 이거보고 길을 찾은거 같습니다

  15. BlogIcon Kioni 2020.10.27 10:50 신고

    안녕하세요 DP부분에서 1시간내로 풀이해서 못풀면 정답을 보고흡수하라고 언급하셨는데, 그 다음 이런저런문제 ~ 완전정복 또한 1시간 내로 추천하시나요? 그리고 종만북은 그럼 2권먼저 시작하고 1권을 보시는걸 추천하시는건가요?

    • BlogIcon plzrun 2020.11.02 01:36 신고

      완전정복..? 완전탐색 말씀이신가요?ㅎㅎ 아무튼 1시간 동안 봤는데 모르는 문제는 풀 확률이 사실상 없습니다. 특히나 종만북도 안본 상태라면 아예 모르는 부분일 가능성도 크고, 본적이 있다 하더라도 실제 제대로 쓸 수 있게 될 때까진 꽤 오랜 시간이 필요할 거에요. 그러니 1시간 지나면 그냥 답 보고 문제 푸는게 좋다고 생각합니다. 그리고 종만북과 관련된 질문은 YES입니다.

  16. BlogIcon dlfqksrh 2020.10.28 21:12

    일반고 학생입니다. 현재 제가 입출력 부분만 할 수 있는데 그 아래쪽 dp부분은 공부를 어떻게 시작해야 할까요?

    • BlogIcon plzrun 2020.11.02 01:55 신고

      음.. 입출력만 할 줄 안다는게 어느정도 할줄 아는건지 잘 모르겠으나, 문자 그대로 입출력만 할줄 아신다면 프로그래밍 언어 공부부터 하셔야 할 것 같습니다. DP를 어떻게 시작하냐가 문제가 아닌 상황인거겠죠.. C/C++을 어느정도 익히고는 시작하셔야 합니다. 그리고 제 의견대로 공부를 시작하려고 하신다면, 언어를 익힌 이후에 다시 한번 제 글을 읽어보시는게 좋을 것 같습니다.

  17. PS꿈나무 2020.11.01 22:35

    안녕하세요 정말 이 글을 읽고 알고리즘 PS하니까 정말 좋고 너무 감사드립니다ㅠㅠ

    혹시 그 가이드라인에 종만북 보시라는 것은 1권 수치해석 -> 2권 그래프부터 쭉쭉 (기하 Skip) -> 다시 1권인가요?

    제가 이해를 잘 못해서 죄송합니다ㅠㅠ

    • BlogIcon plzrun 2020.11.02 01:47 신고

      ^^ 도움이 됐다니 기쁘네요~! 댓글 저도 감사합니다.
      종만북과 관련된 내용 답변 드리자면, 네 그렇습니다. 말씀하신대로 1(수치해석)->2->1(나머지 전부) 이렇게 하시면 됩니다. 물론 이게 정답은 아니고 제가 읽고나서보니 그렇게 보는게 좋을 것 같다는 생각이 들어서.. 그렇게 추천드렸습니다.

  18. 2020.11.03 12:59

    정말 좋은 글이네요 너무 감사합니다ㅠㅠ 알고리즘 정말 부족한거, 공부해야 한다는거 알겠는데 순서대로 풀기에는 문제가 너무 많고, 그렇다고 골라서 풀기에는 어떻게 골라야 할지도 모르겠고 공부는 또 어떻게 해야할지 막막했는데 앞으로 공부하는데 큰 도움이 될 것 같습니다. 한두시간 보고 모르겠으면 답 보면 된다는 말이 위로가 되고 효율적인 공부를 할 수 있을 것 같아서 감사합니다. 무조건 스스로 생각해내야 한다는 사람들이 있어서 몇 시간씩 붙들고도 답이 안나와서 괴로웠거든요ㅠㅠ 실력 쌓으면 다시 와서 감사 댓글 남기겠습니다. 감사합니다!

    • BlogIcon plzrun 2020.11.19 23:48 신고

      저도 감사합니다. 항상 자기가 모르는거 아는게 참 힘들죠.. 뭔가 모르는거 같은데 어떻게 해결해야할지도 잘 모르겠구요 ㅎㅎ 저도 요즘 이래저래 그런 상태에 빠져있는데 열심히 해결책을 모색해봐야겠습니다. 아무튼 공부 열심히 하셔서 실력 많이 쌓으시길 바래요~! 화이팅!! :D

  19. 2020.11.04 12:00

    비밀댓글입니다

  20. alal 2020.11.14 02:50

    혹시 ac받은 풀이를 보라고 하셨는데 ac가 뭔가요?? 그리고 랭킹100위 안에 드는 사람의 코드는 어디서 볼수 있나요 ㅠㅠ 코린이라서 잘모르겠네요

    • BlogIcon S_Hoon 2020.11.14 04:06 신고

      백준에서 문제를 성공적으로 맞추셨다면 그 다음부터 다른 사람들의 코드를 보는 것이 가능한데
      원하는 문제에 들어가셔서 문제를 맞춘 후에 '맞춘 사람' 버튼은 누르시면 본인의 코드를 공개한 사람 한해서 코드를 볼 수 있습니다

  21. BlogIcon S_Hoon 2020.11.15 05:36 신고

    안녕하세요 좋은 글 감사합니다 하지만 궁금한게 있습니다
    다른 사람들 의견을 들어보니 dp문제는 초반에 풀만한 문제가 아니라는 말이 많고
    저도 한 5문제정도 풀어본 결과 좀 어렵더라구요

    그래서 혹시 dp 문제를 입출력문제들 다음에 경험해보는게 왜 좋다고 생각하시는지 의견을 들어볼 수 있을까요?

    • BlogIcon plzrun 2020.11.16 11:04 신고

      제가 위에 포스팅한 dp문제들은 초등학생 정올 문제에도 안나올 법한 기본 문제에요.. 맛보기 정도로 재미있게 시작하라고 있는 부분입니다. 다만 처음 하시면 기본이라고 해서 쉽지는 않습니다. 그리고 사실 종만북 순서대로 dp를 앞에서 하셔도 됩니다. 어차피 이러나 저러나 넘어야 할 산이니까요. 다만 취업 준비로 배우시는거라면 dp는 저정도만 알고 넘어가셔도 좋습니다.