티스토리 뷰

반응형

 

 

요즘 들어 프로그래머스 알고리즘 코딩문제를 계속 풀고있습니다. 지난주에는 1단계 문제를 전부 풀어보았고, 이번주부터는 2단계 문제를 풀어보고 있습니다.

2단계도 기초수준의 문제위주라곤 하지만 아직 많은 고민과 시행착오가 있어 30%정도는 구글링 힌트를 얻고나서야 풀게된 문제도 있어 복습도 많이 필요할 것 같습니다. 저는 제 본업과 별개로 알고리즘고수가 되어서 남들에게 알고리즘을 가르쳐줄 정도가 되고싶습니다. 

 

 

 

그래도 확실히 문제를 풀면 풀수록 그림도 그려지고, 문제를 뭐로풀어야할 지 갈피가 잡히기도 합니다. 최근엔 스택/큐 알고리즘 문제를 몇개 해결했는데 첫번째로 "기능개발" 스택/큐 문제를 풀었습니다. 이 문제는 queue<pair<xxx,xxx>> q를 통해 가볍게 풀 수 있었습니다. 문제를 하나씩 풀다보면 한번은 꼭 실수가 있어 틀리곤 하는데 한번에 성공해서 되게 기분 좋았어요. 이 외에도 map, priority_queue, stack, vector등 다양한 타입을 사용해서 문제를 풀어볼 수 있어서 좋은 것 같습니다.

하나 아쉬운건 실제 테스트케이스 평가대상의 입출력 값을 알 수 없어서 채점에 통과하지 못할 경우 반례찾는데도 시간이 들곤 하는것입니다.

 

 

 

이 문제, "올바른 괄호" 알고리즘 코딩 문제는 "기능개발" 보다 3배는 쉬웠던것 같습니다.

'()())))()'같은 입력값을 인덱스로 순회하면서 스택에 '('를 쌓았다가 ')'가 나왔을때 스택에 '('를 하나씩 pop() 시키고, 만약 이때 stack.empty()가 true라면, false를 답으로 + 순회를 마쳤는데 stack에 '('이 남아있다면 false를 답으로, 스택이 비어있으면 true를 반환하도록 하니 정답처리가 되었습니다.

 

 

 

"탑" 문제는 입력받은 탑들의 정보와 순서를 참고하여 문제설명 조건에 맞는 수신탑을 답으로 내놓는 문제였습니다.

이 문제는 제대로된 이해를 위해 그림을 그려가면서 했는데요. 입력값의 맨 뒷 값부터 2중for문으로 순회하면서 수신을 받을 수 있는 탑이 있다면 그 탑의 번호값을 차례대로 stack에 저장했습니다. queue<pair<int,int>>를 사용할줄 알았는데, for문 내 지역변수만으로도 커버가 되어서 더욱 복잡하게 스택/큐를 사용하며 갈 필요는 없었습니다. 이 문제도 다 풀고나니 생각보단 가벼운 문제였습니다. "올바른괄호" 문제가 제일 쉬웠네요.

개인적으로 볼때 프로그래머스 알고리즘 2단계 코딩문제사이에도 많은 난이도 편차가 보였습니다. @_@;;

 

알고리즘 문제풀이의 재미를 좀더 어렸을때 알았더라면 하는 아쉬움도 있지만 지금부터라도 꾸준히 풀어가며, 점점 더 어려운 알고리즘까지 마스터 해봐야겠습니다. 오늘은 그냥 일기장 쓰듯 제가 프로그래머스 풀다가 드는 생각, 푼 문제(스택/큐 알고리즘 문제)들에 대한 간략한 풀이과정, 후기를 말해봤습니다. 모두들 즐코딩하세요 ^-^//

반응형
댓글
반응형
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
글 보관함