개발자 쿠키

코딩테스트 오답노트 본문

algorithm

코딩테스트 오답노트

개발자 쿠키 2026. 3. 7. 14:44

1. 구현/시뮬레이션 : 배열, 시뮬레이션
2. 그리디 : 정렬 후 최적 선택
3. 투포인터 : left < right, left <= right
    이분탐색 : left <= right
     1. 특정 값 찾기
     2. 파라메트릭
     3. 최소/최댓값 찾기
    슬라이딩 윈도우
4. 완전탐색
 4-1. 순열 - 백트래킹 true dfs false / dfs(depth)
 4-2. 조합 - dfs(start, depth)
 4-3. 부분집합 - 선택/비선택 dfs(depth) dfs(depth+1)
 4-4. 백트래킹, 그래프/격자 탐색
5. bfs : 최단거리, 레벨탐색, 격자탐색
6. dp : 1차원, 2차원, 문자열
7. 다익스트라 : 우선순위큐 + bfs

[2026-02-XX] 백준 12919 / 숨박꼭질 3 / 다익스트라
[2026-03-01] 백준 5972 / 택배 배송 / 다익스트라
[2026-03-16] 백준 1863 / 다익스트라
왜 못 풀었나 : bfs로 풀다가 실패 -> 최단거리는 무조건 다익스트라
핵심 아이디어 : 우선순위큐 사용
3일 후 복습 : X

[2026-02-XX] 백준 20055 / 컨베이어 벨트 위의 로봇 / 시뮬레이션
왜 못 풀었나 : 아예 건들지 못함
핵심 아이디어 : 
3일 후 복습 : X

[2026-02-XX] 백준 16928 / 뱀과 사다리 게임 
왜 못 풀었나 : 
핵심 아이디어 : 
3일 후 복습 : X

[2026-03-12] 백준 20437 / 문자열게임2 / 문자열
왜 못 풀었나 : 배열에 a가 나온 위치를 저장한다는 생각을 하지 못함
핵심 아이디어 : pos[c][x]는 a가 나온 위치, pos[a][0] - pos[a][0+k-1] + 1은 앞뒤가 같은 문자열의 길이
3일 후 복습 : X

[2026-02-XX] 백준 2493 / 탑 / 스택
왜 못 풀었나 : for문 2개 돌리다가 시초가 발생함, 스택 생각 못함
핵심 아이디어 : Stack<int[] > stack = new int<>(); 
stack.add(new int[]{배열값, i+1});
3일 후 복습 : O

[2026-02-XX] 백준 14719 / 빗물
왜 못 풀었나 : 아이디어를 못떠올림
핵심 아이디어 : 가운데를 기준으로 계속 max값이 커져가면서 현재 위치랑 비교
3일 후 복습 : O 

[2026-03-02] 백준 2467 / 용액 / 투포인터
왜 못 풀었나 : 투포인터에 대해 약했음
핵심 아이디어 : 더한 용액이 0보다 작으면 left++ 크면 right--
3일 후 복습 : O

[2026-03-03] 백준 7682 / 틱택토
왜 못 풀었나 : O와 X의 숫자의 차이가 1이어야한다는걸 이해하지못함. 분기처리가 많은건 함수로 빼는게 좋음
핵심 아이디어 : 
3일 후 복습 : X (3/23)

[2026-03-04] 백준 2667 / 숫자고르기
왜 못 풀었나 : 
핵심 아이디어 : 
3일 후 복습 : X

[2026-03-04] 백준 22251 / 빌런 호석
왜 못 풀었나 : 
핵심 아이디어 : 
3일 후 복습 : X

[2026-03-07] 이거 언제더라.. !!
왜 못 풀었나 : 비트마스크 모름
핵심 아이디어 : 
3일 후 복습 : X

[2026-03-08] 백준 7490 / dfs
왜 못 풀었나 : dfs로 + - 공백 연산을 추가해주는 부분을 못함
핵심 아이디어 : dfs(idx+1, str + "+" + idx);
3일 후 복습 : X

[2026-03-10] 백준 16234 / bfs
왜 못 풀었나 : bfs인지도 모름
핵심 아이디어 : 방문할때마다 bfs로 돌려서 카운트
3일 후 복습 : X

[2026-03-13] 백준 2138 / 그리디
왜 못 풀었나 : 첫 번째 스위치를 눌렀을 때, 안눌렀을 때 2가지 경우를 생각 못하고 한가지 경우만 생각함
핵심 아이디어 : simulate(arr, res, false) simulate(arr, res, true)
3일 후 복습 : X

[2026-03-15] 백준 1863 / 스택
왜 못 풀었나 : 문제는 이해했으나 아이디어 구현이 떠오르지 않음
핵심 아이디어 : 스택을 이용해 새로들어오는 y값이 더 크면 무한루프 pop 작으면 push
3일 후 복습 : X

[2026-03-17] 백준 1253 / 투포인터
왜 못 풀었나 : 2중 for문으로 시간초과 발생, left, right 포인터에서 i랑 left or right랑 인덱스가 같으면 continue
핵심 아이디어 : for문으로 arr[i] check 하면서 투포인터 무한루프를 돌림 
arr이랑 두개 고른게 같아지면 break 아니면 무한루프
3일 후 복습 : X X(3/28)

[2026-03-18] 백준 1987 / 백트래킹 (dfs)
왜 못 풀었나 : vis[r][c][26] 으로 만들어줘서 배열이 false일때만 방문처리 해주려 했으나 알파벳이 2개 들어오면 방문 자체를 못함으로 잘못된 아이디어
핵심 아이디어 : vis[문자 - 'A'] = true / 26크기짜리 문자열 배열을 만들어주고 false일때만
방문합니다. 그리고 백트래킹으로 dfs 타면 false 카운트도 false하면 cnt--해줬음
3일 후 복습 : O (3/26)

[2026-03-18] 백준 2110 / 이분탐색
왜 못 풀었나 : 이분탐색을 모름, 거리의 차를 left, right로 둔다
핵심 아이디어 : 
3일 후 복습 : X X  (3/28)

[2026-03-18] 백준 1654 / 이분탐색
왜 못 풀었나 : right = mid - 1, left = mid + 1, 21억넘는건 long 타입으로, 0으로 나누면 에러뜨니 left=1;
핵심 아이디어 : while(left <= right) 여야 left=right일때도 비교 가능
3일 후 복습 : O (3/28)

[2026-03-20] 백준 9935 / ?
왜 못 풀었나 : 시간초과 났음. (n^2)
핵심 아이디어 : StringBuilder()로 스택처럼 사용 
3일 후 복습 : X

[2026-03-20] 백준 13144 / 투포인터
왜 못 풀었나 : 
핵심 아이디어 : 중복없는 연속 부분수열을 찾는 문제 : left에서 시작해서 중복 안 나올 때까지 right를 밀고, 그 구간 길이가 곧 부분수열 개수
3일 후 복습 : X X (3/28)

[2026-03-22] 백준 1976 / dfs + 인접행렬 
왜 못 풀었나 : 머리속으로 아이디어는 떠올랐으나 구현방법은 떠오르지 않음
핵심 아이디어 : 
3일 후 복습 : X

[2026-03-22] 백준 1027
왜 못 풀었나 : 
핵심 아이디어 : 기울기 건물 i에서 j를 바라볼 때 (arr[j] - arr[i]) / (j - i) 이전까지의 기울기보다 더 큰 기울기가 나와야 건물이 보임 
3일 후 복습 : X

[2026-03-24] 프그 타겟 넘버 / dfs + 문자 / 순열
왜 못 풀었나 : dfs를 사용방법을 아직 모르는거 같음
핵심 아이디어 : 
3일 후 복습 : X

[2026-03-25] 프그 메뉴 리뉴얼 / dfs + hash / 조합 
왜 못 풀었나 : 문제를 이해하지 못했음
핵심 아이디어 : 
3일 후 복습 : X

[2026-03-28] 프그 베스트앨범 / hash 
왜 못 풀었나 : 문제를 이해하지 못했음
핵심 아이디어 : 
3일 후 복습 : X
[2026-03-28] 프그 게임맵 최단거리
[2026-03-29] 백준 15686 / dfs
왜 못 풀었나 : 문제를 이해하지 못했음
핵심 아이디어 : 
3일 후 복습 : X

[2026-03-26] 백준 6603 / dfs
왜 못 풀었나 : 선택된 6개의 숫자는 배열에 저장한다는 생각을 못함
핵심 아이디어 : dfs -> depth==6이면 배열에 저장된 6개 출력
3일 후 복습 : X X (3/29) 

[2026-03-25] 프그 소수찾기 / dfs / 순열 
[2026-03-26] 백준 1182 부분수열의 합 / dfs / 부분집합
[2026-03-26] 백준 2667 단지번호붙이기 / dfs / 그래프탐색 -> dfs + dxdy
[2026-03-26] 백준 1987 알파벳 복습 / dfs / 백트래킹심화
[2026-03-28] 프그 게임 맵 최단거리 / bfs / 기본
[2026-03-27] 백준 1654 랜선 자르기 X O(3/30)
[2026-03-26] 프그 양궁대회 / dfs / 백트래킹
[2026-03-26] 프그 네트워크 / dfs / 그래프탐색

[2026-03-27] 프그 문자열 압축 / 구현 -> 아예 못품
[2026-03-27] 프그 가장 큰 수 / 정렬 : 문자열 커스텀 정렬
[2026-03-27] 프그 H-Index / 정렬 
[2026-03-27] 백준 2110 공유기 설치 

[2026-03-27] 프그 베스트앨범 / 정렬 
[2026-03-28] 백준 1253 GOOD 복습 / 투포인터
[2026-03-28] 백준 13144 List of Unique Numbers 복습 / 투포인터

비트마스킹

 

 


SQL 복습 

SQL 문법 정리 
1차 고득점 KIT 1회독
2차 고득점 KIT Level 3 ~ 4 복습 (2026.03.29 ~ ) 

피드백
- 서브쿼리에 where, from, having절에 올 수 있는데, from절에 오는 것과 윈도우 함수 공부하기

# Join
1. 주문량이 많은 아이스크림들 조회하기
2.
특정 기간동안 대여 가능한 자동차들의 대여비용 구하기 - 모르겠음
3.
5월 식품들의 총매출 조회하기
4.
그룹별 조건에 맞는 식당 목록 출력하기 - 서브쿼리
5.
없어진 기록 찾기
6.
있었는데요 없었습니다
7.
오랜 기간 보호한 동물(1)
8.
보호소에서 중성화한 동물
9.
상품을 구매한 회원 비율 구하기
10.
FrontEnd 개발자 찾기 - & 비트연산자 사용법을 모름, 알고리즘에서도 연습 필요
#Group By

1. 자동차 대여 기록에서 대여중 / 대여 가능 여부 구분하기 -> CASE WHEN은 잘 썼으나 max값 활용하는 것을 못함
2. 저자 별 카테고리 별 매출액 집계하기
3. 식품분류별 가장 비싼 식품의 정보 조회하기
4. 즐겨찾기가 가장 많은 식당 정보 출력하기
5. 조건에 맞는 사용자와 총 거래금액 조회하기
6. 카테고리 별 도서 판매량 집계하기
7. 대여 횟수가 많은 자동차들의 월별 대여 횟수 구하기
8. 년 월, 성별 별 상품 구매 회원 수 구하기

9. 입양 시각 구하기(2)
10. 언어별 개발자 분류하기
11. 연간 평가점수에 해당하는 평가 등급 및 성과금 조회하기
12. 부서열 평균 연봉 조회하기
13. 특정 조건을 만족하는 물고기별 수와 최대 길이 구하기