티스토리 뷰
요즘 알고리즘 문제를 계속 풀고 있는데요. 대학생활때 이런 문제를 많이 풀어둘걸 후회가 되는것 같아요. 되게 재밌게 풀다보니 프로그래머스의 1단계 문제는 전부 풀게 되었습니다. 1단계 문제에 대한 리뷰도 포스팅을 종종 올리겠습니다.
알고리즘문제를 풀던 과정을 공유해볼게요. @_@;;
어제는 1단계문제를 풀다가 도중에 "큰 수 만들기" 라는 문제를 전전긍긍하다가 막혔었는데 오늘 드디어 풀어냈습니다. 처음에는 c++의 순열기능(permutation)을 사용해서 해결하려고 했는데 테스트케이스 절반을 틀리더라구요. 결국에 해결을 해낸 방법은 스택이었습니다. 스택이 이렇게도 쓰일 수 있구나... 크게 배운 문제였습니다. 그렇게 마저 남은 1단계 알고리즘 문제들 또한 풀어보기 시작했습니다.
"같은 문제는 싫어!" 문제입니다. vector의 iterator 반복자를 사용해서, 중복된 문자에 대해서는 벡터에서 받지 않도록 해서 문제를 풀었습니다. 처음에는 급하게 한다고 unique()를 사용해서 중복을 제거하려했는데, 이 문제는 붙어있는 중복숫자만 제거하면 되는거라 허둥지둥했었어요. 본래는 더욱 단순한 문제였습니다.
2016년은 윤년의 각 달의 일수를 외우게 해준 문제였습니다. 윤년의 a월b일의 요일을 맞추는 문제!
저는 일, 월, 화, 수, 목, 금, 토 문자열 배열과 각 달의 일수 (31,29,31,30,31,30,31,31,30,31,30,31) 를 미리 선언해두고, a월 b일의 요일을 환산할 수 있었습니다.
제곱근 판별문제는 제곱근이 되는지를 판별하는 문제였는데요. sqrt(int n), 루트씌우는 함수와 pow(int n,int m), 제곱함수를 사용해서 해결했습니다.
도중에 김서방찾기 알고리즘 문제는 쓸데없이 골치거리였어요. 한글을 출력하는데 유니코드가 프로그래머스의 실행결과에 잘 나오지 않아서 처음에 당황했어요. 계속 해보니 한글만 깨지는 것일 뿐 문제해결에는 문제가 되지 않았어요. (코딩만 잘하면 정답처리가 되었음..)
이상한 문자 만들기는 대문자일경우 문자+32, 소문자일경우 문자-32처리를 해서 해결할 수 있었습니다.
짝수인덱스는 '수', 홀수인덱스는 '박'을 출력하면 끝난던 문제.... swift로 구현하면 (repeating: , count:) 기능과 삼항연산자를 사용하면 한줄이면 끝난다는... ;;
핸드폰번호가리기.... 그냥 앞의 4자리 '*'로 바꾸면 끝나는 문제... 너무 이런 쉬운문제에 빠지면 실력향상이 안되겠죠... 좀더 어렵고 유익한 문제를 많이 풀어봐야 겠습니다.. 그렇게 풀다보니... 어느덧 프로그래머스 1단계 문제를 다 풀게 되었음! ^0^//
가끔 머리 뜨거운 상황이 있어요. 위 문제는 2단계 최솟값 최댓값 구하기 문제인데요. 테스트케이스는 제가 만든 케이스까지 전~부 성공하는데 정작 제출했을때 테스트케이스는.... 십망이었어요.
으... 반토막이 나버리는 매직.... 여기서는 공백제거를 제대로 하지못하는 애로사항이 있었는데... c++의 sstream헤더, stringstream기능을 사용하여 최솟값, 최댓값 알고리즘 문제 또한 이상없이 해결할 수 있게되었습니다! ^0^//
1단계 왕초보수준 알고리즘 문제 위주로 풀었지만... 어느덧 45개의 문제를 풀었습니다. 완전 초보인데.. 순위가 690위라니.. 부끄럽네요. 프로그래머스 유저가 확실히 백준알고리즘 유저에 비해 적음을 느꼈습니다. 백준에서는 몇천위의 순위에 불과하거든요...
여튼! 이제는 2단계 알고리즘 문제를 도전해야 할때입니다. 알고리즘 실력을 키우기위한 흑우의도전은 계속될것입니다... 즐코딩!!!
'알고리즘 정보 > C++ 알고리즘' 카테고리의 다른 글
우선순위큐 MaxHeap 프린터 힙 알고리즘문제 풀이 (0) | 2019.05.16 |
---|---|
라면공장 알고리즘 힙문제풀이, 섬머코딩 후기 (0) | 2019.05.15 |
프로그래머스 알고리즘 스택/큐 코딩문제풀이 정복 중 (0) | 2019.05.07 |
프로그래머스 탐욕법 알고리즘, 체육복 문제풀이 (2) | 2019.05.06 |
프로그래머스 C++언어 알고리즘 문제풀이 입문했다 (2) | 2019.04.30 |
- Total
- Today
- Yesterday
- Swift 알고리즘
- swift알고리즘
- swift문제
- ios
- Protocol
- 백준알고리즘
- uikit
- 부스트코스
- Collection
- swift reduce
- SwiftUI
- swift언어
- 프로토콜
- 김프매매
- swift string
- 컬렉션
- 알고리즘문제
- 스위프트
- 알고리즘
- 프로그래머스swift
- swift
- 자연어처리
- swift 문자열
- 개발자문서
- createML
- 백준swift
- swift 기초
- publisher
- CoreML
- 프로그래머스
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 |