<이것이 취업을 위한 코딩 테스트다 with 파이썬> 을 참고하여 작성한 게시물입니다. 그리디 현재 상황에서 지금 당장 좋은 것만 고르는 방법. 그리디 문제에서는 대개 '가장 큰 순서대로', '가장 작은 순서대로' 와 같은 기준을 제시해준다.대부분의 문제는 그리디를 이
백준 1753번을 풀면서 djikstra 알고리즘(다익스트라 알고리즘) 개념에 대해서 다시 한 번 정리해봤다. djikstra 알고리즘은 최단 경로 탐색 알고리즘 이다. 시작 정점에서 모든 정점으로 가는 최단 경로를 알려주는데, 전체적인 로직은 다음과 같다.1.출발 정
백준 15828번을 풀면서 deque를 사용했다.deque는 알고리즘 풀이를 하면서 자주 쓰게 되는데, 오랜만에 쓰다보면 사용법이 종종 헷갈릴 때가 있어서 정리해두고자 한다.deque는 O(1)의 속도로 매우 빠르며, popleft()와 같은 메서드 등을 제공하기 때문
백준 5430번을 풀면서 python의 입/출력 형식과 관련하여 정리를 한 번 해야겠다고 생각했다. 알고는 있지만 오랜만에 쓰려고 하면 헷갈릴 때가 있기 때문이다.입력의 경우 input()으로 받을 수 있고, 여러 개를 따로 따로 입력 받을때는 n, m = map(자료
백준 2566번을 풀면서 오랜만에 최댓값/최솟값 찾기에 대해서 복습했다.python은 최댓값과 최솟값을 매우 쉽게 찾을 수 있는데,python에 max, min 내장 함수가 있어서 이걸 이용하면 된다.이다. 이렇게 하면 max, min 값을 바로 구할 수 있다. (물론
알고리즘 문제를 풀다보면 exit를 사용하게 되는 경우가 있다.이때 exit(0)은 성공적으로 프로그램 종료, exit(1)은 성공적으로 프로그램 종료를 하는 것이 아닐때 쓰인다.exit는 sys.exit()와 exit() 두 가지가 있는데, stackoverflow,
재귀문제를 풀다보면 sys.setrecursionlimit()을 사용하는 경우가 많다. 파이썬의 기본 재귀 깊이 제한이 1000으로 매우 얕은 편이기 때문에, 코딩테스트 환경에서 파이썬으로 재귀 문제를 풀이할때는 해당 구문을 이용해서 재귀 깊이 제한을 풀어줄 수 있다.
백준 1213번을 풀면서, 나는 알파벳 문자의 개수를 저장하기 위해 배열을 생성해서 직접 하나하나 세는 방식을 사용(...) 했는데 다른 풀이를 보니, Counter을 이용해서 한 번에 개수를 세는 방식을 사용하고 있었다. from collections im
백준 1013번을 풀면서 정규표현식을 사용하게 됐다. 직접 파싱하는 절차를 구현할 수도 있겠으나, re 모듈로 정규표현식을 바로 매칭할 수 있으니 그렇게 푸는 게 편할듯하다. (만약 직접 구현한다면 while문 활용하거나 재귀함수 이용해서 풀면 될 것 같다.) 하지만
백준 1431번을 풀면서 해당 문자열이 문자인지 숫자인지 판별할 필요가 있었다. 파이썬에서는 isalpha()와 isdigit()를 활용해서 숫자인지 문자인지 판별할 수 있다.숫자 판별에 쓰이는 함수는 isdecimal(), isdigit(), isnumeric() 이
원래 나는 python으로 코딩테스트를 준비하고 있는데, 요새들어 종종 코딩테스트 언어가 java로만 제한된 기업들이 있어 java로 코딩테스트를 급하게 준비할 일이 생기곤 했다. (...) 이번에도 그런 일이 생겨서, java 코딩테스트 작성법을 아예 포스트로 정리를
오늘 코딩테스트를 치르면서 진수변환을 이용하는 문제가 나왔는데, 파이썬에서 진수변환 라이브러리가 있는지, 없는지 기억이 안나서(..) 공식문서를 한참 뒤지다가 결국 구현해서 풀었다. 그래서 이번 기회에 정리해보고자 한다.n진수 -> 10진수사실 이건 공식 문서 읽어도
알고리즘을 풀때 우리를 괴롭히는 3대장이 있다.. 1)시간초과 2)반례 3)메모리초과이다. 사실 반례는 열심히 생각해내야해서 답이 없고... 시간초과는 입력값과 내 코드를 기반으로 해서 시간복잡도를 구하면 대충 계산해볼 수 있다. 메모리 초과도 마찬가지. 그래서 자신의
이번에도 java로 코딩테스트를 볼 일이 생겼다. 이쯤되니 그냥 언어를 갈아탈까 싶기도 하다(...) 어쨌든간에.코딩테스트 환경에서는 ide를 안 쓰다보니 stream/collection 코드를 짤 때 헷갈린다. 특히 평소에 java는 ide로 쓰는 편이라 import
java 코딩테스트를 위한 스니펫을 기록한다. (지속적으로 추가 예정)
프로그래머스 이중우선순위큐와 백준 7662번을 풀면서 공부한 내용을 정리한다. 저 두 문제는 동일한 문제고, 백준에서는 Python으로 풀었고 프로그래머스에서는 java로 다시 풀었다. 나는 PriorityQueue를 사용해서 풀었는데, 더 나은 방법이 없나...를
종종 코딩테스트 치면서 SQL이 나올때가 있다. 그것도 제법 까다롭게 나오는 경우도 많다... 평소에 프로젝트할때 쿼리 짠다고는 해도 끽해야 JOIN이나 집계함수 수준이어서, 그 외에 자주 안 쓰이는 복잡한 쿼리들을 좀 정리해놓으려고 한다. (MySQL 기준)AVGCO