20210310_TIL
- 스택, 큐 관련 백준 알고리즘 문제를 풀면서 경험을 쌓았다. 스택, 큐 개념은 이틀 전 밤에 강의를 들으면서 익혀놨던 터라 개념을 알고는 있었는데 관련 문제를 푸는 건 처음이었다. 따라서 어떻게 관련 method들을 적용하여 구현해야 할 지 감이 안와서 내가 짠 코드들이 매우 마음에 안들었다. 스택 자료구조관련 method들을 완벽하게 응용해 풀지 못했다.
- 그래서 든 생각인데 난이도 있는 개념을 공부한 후 관련 문제 풀이를 '처음할 때'에는, 2시간 정도 고민 후 모범 답안 풀이를 보고 풀이를 익히는 방법이 효율적일 것 같다. 개념을 모범적으로 구현한 풀이를 익히면, 다음에 동일 개념 다른 문제를 풀 때 코드가 좀 더 나아질 테니 말이다.
- 마침 오늘 스택 관련 문제를 두 개나 풀었고, 모범 풀이를 보았다. 역시 비슷한 method를 사용해 비슷하게 구현했다. 그래서 스택 관련 문제는 이렇게 푸는구나~ 하고 감을 잡았다. 알고리즘 문제는 경험이 쌓이면 잘 풀게 된다는 말이 어떤 말인지 이제야 이해했다.
- 틈틈히 프로그래머스 사이트에서 문제들을 풀어봐야지.
스택 관련 백준 문제들, 풀이의 유사성
균형잡힌 세상 4949번
스택 수열 1874번
두 문제 모두 스택 관련 문제이다.
왼쪽은 4949번 문제이고, 오른쪽은 1874번 문제의 모범답안이다.
두 개의 문제는 문제만 보면 유사하게 느껴지지는 않으나, 스택이라는 자료구조를 사용한다는 점에서 공통점이 있다.
바로 이 공통점에서부터 풀이가 유사해진다.
살펴보면, 다음과 같은 공통점이 있다.
1) Stack으로 활용할 빈 리스트를 만들고 시작한다.
2) while, for 등의 반복문을 통해 데이터를 넣고(append) 빼는(pop) 작업을 반복한다.
3) 반복하는 과정에서 조건문을 통해 어떤 조건에서 데이터를 넣고, 어떤 조건에서 데이터를 뺄 지 지정해준다.
이 공통점은 스택 문제뿐 아니라 큐 문제에도 적용된다. 파이썬의 리스트 형태로 pop, append, insert를 기본으로 큐를 구현하기 때문이다. 데이터를 앞에서 뺄지 뒤에서 뺄지만 달라지고, 사용되는 method는 비슷하다보니 풀이가 상당부분 유사해지는 부분이 있는 것 같다.
오늘 참석했던 항해99 알고리즘 관련 세미나에서 코딩 테스트에서 나오는 개념은 한정적이라고 들었다.
따라서 한정적인 개념 각각에 해당하는 문제풀이를 골고루 진행하며 문제풀이 경험을 쌓고, 각 개념들의 모범답안들을 보고 풀이의 유사성을 찾아나간다면 생각보다 단시간 안에 '코딩 테스트에서 필요한 문제풀이 실력'을 올릴 수 있을 듯도 하다.
'Basic > 자료구조와 알고리즘 Algorithm' 카테고리의 다른 글
나의 알고리즘 공부 여정6 - 탐색 알고리즘, 코드 기능과 형태 개선 (1) | 2021.03.16 |
---|---|
나의 알고리즘 공부 여정5 - 시간 복잡도, 코드 효율화 (0) | 2021.03.12 |
나의 알고리즘 공부 여정4 - DFS, BFS, Dynamic Programming, 유형별 개념 적용 (0) | 2021.03.11 |
나의 알고리즘 공부 여정2 - 자료구조, 알고리즘, 재귀, 정렬, 이분탐색 (0) | 2021.03.09 |
나의 알고리즘 공부 여정1 - 우리는 왜 알고리즘을 공부하는가? (0) | 2021.03.08 |