소프트웨어 마에스트로 14기 준비하면서 찾아본 코딩 테스트 문제 유형 정보 정리 공식적인 정보가 아닌 타 블로그에서 발췌해 온 정보입니다. 14기부터는 WEB 유형 문제가 사라지고 알고리즘 유형과 SQL 유형으로만 평가하게 됩니다. 대부분 블로그 후기에선 1차는 실버 상위 문제가 다수이고, 2차에선 골드 문제(분리 집합, 다이내믹 프로그래밍) 또는 실버 문제(구현, 탐색)로 구성되게 됩니다. 알고리즘 문제유형 정리 자료구조 구현 완전탐색 (Brute-Force) 이분탐색 (Binary Search) 조합, 순열 정렬 라인 스위핑 그래프 탐색 (DFS, BFS) 분리 집합 (Union-Find) 다이나믹 프로그래밍 (DP) SQL 문제유형 정리 AND OR BETWEEN AND GROUP BY DATEDI..
학교 개발 동아리 Megabrain에서 각 동아리원들 코딩 실태 조사 느낌으로 도입했던 Wakatime이라는 서비스가 있었다. wakatime은 개발 시간 측정 서비스로 각 개발 ide 플러그인으로 구현되어 있다. 모든 동아리원이 플러그인을 적용하여 매주 얼마나 개발을 했는지 확인 용도로 서비스를 사용하고 있었다. 매주 불편하게 디스코드 스레드를 열고, 캡처 후 업로드하는 방식이 불편했던 나는 Wakatime에서 제공하는 API를 가지고 express를 사용하여 백엔드를 구축하고 React로 프론트를 간단하게 구축하였다. 백엔드 제작기는 아래 글을 참고하면 된다. https://www.jongung.com/287 [node.js] Mega Waka Board 백엔드 제작기 학기 중에 Node.js 공부를..
학기 중에 Node.js 공부를 하던 도중, 학교 개발 동아리 Megabrain에서 각 동아리원들 코딩 실태 조사(?) 느낌으로 도입했던 Wakatime이라는 서비스가 있었다. wakatime은 개발 시간 측정 서비스로 각 개발 ide 플러그인으로 구현 되어있다. 모든 동아리원이 플러그인을 적용하여 매주 얼마나 개발을 했는지 확인 용도로 서비스를 사용하고 있었다. 매주 불편하게 discord에 캡쳐하고, 업로드하는 방식이 불편했던 나는 Wakatime에서 제공하는 API를 가져와 우리만의 WakaTime LeaderBoard를 만들어 보자! 생각하여 Wakatime API를 살펴보았다. https://wakatime.com/developers 해당 사이트에서 API Docs를 읽은 후 바로 개발을 시작하..
최근 알고리즘 테스트 공부를 위해서 파이썬을 꽤나 자주 이용하는데, 문제에서 빈번하게 사용되는 deque에 대해서 알아봅시다! Deque, 왜 쓰나요? 먼저 주 언어가 Javascript였던 제가, 파이썬으로 알고리즘을 하게 된 가장 큰 이유가 바로 deque의 유무였습니다. 자바스크립트에서 후입선출 방식의 Queue나 양쪽에서 삽입 삭제가 가능한 Double-ended Queue 같은 자료구조를 구현하기 위해선, 링크드리스트를 거의 필수로 사용해야 했습니다. 예를 들어 1, 2, 3이 있는 배열을 큐 방식으로 넣고 뺀다고 생각해 봅시다. 1, 2, 3에서 가장 먼저 들어왔던 1의 값만 뺀다고 생각 해봅시다. 그럼 1을 빼기 위해서, 뒤에 있는 모든 index들이 한 칸 앞으로 와야 하는 귀찮은 일이 발..
알고리즘 공부를 하는 중에 그래프 탐색 파트를 공부하기 시작해서 짚고 넘어가는 것이 좋겠다고 생각하여 DFS와 BFS를 알아보고, 파이썬으로 구현까지 해본다. DFS (Depth-First Search) 깊이 우선 탐색이라고 부르고 그래프에서 깊은 부분을 우선 탐색하는 알고리즘이다. 갈 수 있는 한 맨 밑까지 탐색하여 리프노드(맨 아래 노드)를 방문하고, 이전 갈림길에서 선택하지 않은 노드들을 방문하는 식으로 탐색한다. 방문 위치를 기록 하는 스택을 이용하여 해결 할 수 있다. 또는 재귀로 해결 할 수 있다. 스택 방식 동작 과정 탐색 시작 노드를 스택에 삽입하고 방문 배열에 방문 했다고 표시한다. 스택의 최상단 노드에 방문 하지 않은 인접 노드가 있으면 해당 노드를 스택에 넣고 방문 처리를 한다. 만약..
https://www.acmicpc.net/problem/2493 2493번: 탑 첫째 줄에 탑의 수를 나타내는 정수 N이 주어진다. N은 1 이상 500,000 이하이다. 둘째 줄에는 N개의 탑들의 높이가 직선상에 놓인 순서대로 하나의 빈칸을 사이에 두고 주어진다. 탑들의 높이는 1 www.acmicpc.net 사용언어 : python 알고리즘 : 자료 구조, 스택 Solved.ac Tier : Gold V python 코드 1. 문제 정리 이 문제는 시간이 1.5초이고 주어지는 탑의 개수가 50만개이기 때문에 시간 복잡도가 O(N^2)를 넘어서면 시간 초과가 발생 한다. 따라서 문제를 해결 할 때 탐색 하는 것을 빼야 했다. import collections import sys from collect..
https://www.acmicpc.net/problem/2504 2504번: 괄호의 값 4개의 기호 ‘(’, ‘)’, ‘[’, ‘]’를 이용해서 만들어지는 괄호열 중에서 올바른 괄호열이란 다음과 같이 정의된다. 한 쌍의 괄호로만 이루어진 ‘()’와 ‘[]’는 올바른 괄호열이다. 만일 X www.acmicpc.net 사용언어 : python 알고리즘 : 구현, 스택, 자료 구조 Solved.ac Tier : Silver I python 코드 1. 문제 정리 어렵지 않은 문제라고 생각하고 접근 했으나, 꽤나 해결 하는데 오래 걸린 문제이다. 사람 머리로 하면 쉬운데... 구현 하려니 머리가 너무 복잡해졌다. 어느 부분에서 곱셈을 하고, 덧셈을 해야 할지 생각 해야 하는 문제였는데, 아이패드로 몇 번 그려보..
https://www.acmicpc.net/problem/1935 1935번: 후위 표기식2 첫째 줄에 피연산자의 개수(1 ≤ N ≤ 26) 가 주어진다. 그리고 둘째 줄에는 후위 표기식이 주어진다. (여기서 피연산자는 A~Z의 영대문자이며, A부터 순서대로 N개의 영대문자만이 사용되며, 길이 www.acmicpc.net 사용언어 : python 알고리즘 : 자료구조, 스택 Solved.ac Tier : Silver IV python 코드 1. 문제 정리 후위 표기식, 전위 표기식은 전공자가 아니라면 듣기 어려운 식들이다. 후위 표기식은 컴퓨터가 사용하는 연산 방법으로, 왼쪽에서 오른쪽으로 표기된 순서대로 처리하면 결과가 올바르게 나오는 후위 표기법을 사용한다. 스택을 사용하여 원래의 중위 표기식으로 변..