알고리즘 문제 솔루션 저장소입니다. 모든 솔루션은 C++ 언어로 작성되었으며, ctrl + F
로 검색할 수 있습니다.
- 헤더 파일은 알파벳 순서로 정렬한다.
- 변수명은 snake case를 따른다.
- 변수명은 문제에 나온 명칭을 그대로 사용한다.
- 문제에 나온 명칭을 사용할 수 없으면 의미 있는 변수명을 짓는다.
- 임시로 값을 저장하는 변수를 제외하고 모두 전역 변수로 선언한다.
- 변수 선언 순서: 기본 자료형 > 표준 라이브러리 컨테이너 > 방향 벡터 배열
- 함수명은 pascal case를 따른다.
- 함수명은 동사로 시작한다. (예외: DFS, BFS, Factorial 등)
- 들여쓰기는 공백 문자 4개를 사용한다.
- 한 줄짜리 if, for, while 문에는 되도록 중괄호를 사용하지 않는다.
- 방향 벡터 배열은 특별한 경우가 아니면 상, 하, 좌, 우 순서로 작성한다.
- 시간 초과가 일어날 수 있으므로
endl
대신'\n'
개행 문자를 사용한다. - 시간 복잡도가 중요한 문제는
ios::sync_with_stdio(false); cin.tie(nullptr);
를 써야 한다.
알고리즘별로 분류하여 알고리즘 공부의 효용성을 높였습니다.
- 코딩 테스트 고득점 키트 문제는 프로그래머스 분류에 따른다.
- 솔루션은 기본적으로 가장 주요한 태그 하나로만 분류한다.
- 여러 알고리즘이 포함될 경우 문제 수가 적은 태그로 분류한다.
<type>: <subject>
- docs: README.md 등 문서 수정
- feat: 새로운 문제 풀이 코드 추가
- fix: 기존 문제 풀이 코드 오류 수정
- refactor: 오류 수정을 제외한 리팩토링
- style: 코드 의미에 영향이 없는 코드 수정
- chore: 위에 해당하지 않는 기타 변경 사항
- rename: 파일 이동 (파일명 변경)
- remove: 파일 삭제
feat: add boj1000.cpp
docs: add coding rules
rename: boj1000.cpp to boj2000.cpp
- [수정] 수정이 필요한 사항
틀렸습니다
: 제출하면 틀리는 코드리팩토링
: 리팩토링이 필요한 코드아이디어
: 새로운 문제 풀이 아이디어기타
: 코드를 제외한 기타 수정 사항
- [복습] 복습이 필요한 사항
복습
: 복습이 필요한 코드
ctrl + F
로 원하는 풀이를 찾을 수 있습니다.
레벨 | 문제 | 해설 | 코드 |
---|---|---|---|
Level 1 | K번째수 | 정렬 | C++ |
Level 1 | 모의고사 | 완전탐색 | C++ |
Level 1 | 실패율 | 정렬 | C++ |
Level 1 | 최소직사각형 | 완전탐색 | C++ |
Level 2 | 게임 맵 최단거리 | BFS | C++ |
Level 2 | 가장 큰 수 | 정렬 | C++ |
Level 2 | 타겟 넘버 | BFS | C++ |
Level 2 | 문자열 압축 | 완전탐색 | C++ |
Level 2 | 괄호 변환 | 재귀 | C++ |
Level 3 | 정수 삼각형 | DP | C++ |
Level 3 | 입국심사 | 이진탐색 | C++ |
Level 3 | 자물쇠와 열쇠 | 시뮬레이션 | C++ |
Level 3 | 기둥과 보 설치 | 시뮬레이션 | C++ |
Level 3 | 외벽 점검 | 백트래킹 | C++ |
Level 3 | 블록 이동하기 | BFS | C++ |
Level 4 | 무지의 먹방 라이브 | 그리디 | C++ |
(2024년 현재 백준 목차 업데이트 중)
번호 | 문제 | 해설 | 코드 |
---|---|---|---|
1000 | A+B | 구현 | C++ |
1001 | A-B | 구현 | C++ |
1002 | 터렛 | 수학 | C++ |
1003 | 피보나치 함수 | DP | C++ |
1004 | 어린 왕자 | 수학 | C++ |
1005 | ACM Craft | 위상정렬 | C++ |
1007 | 벡터 매칭 | 백트래킹 | C++ |
1008 | A/B | 구현 | C++ |
1009 | 분산처리 | 수학 | C++ |
1012 | 유기농 배추 | BFS | C++ |
1021 | 회전하는 큐 | 덱 | C++ |
1158 | 요세푸스 문제 | 구현 큐 |
C++ C++ |
1267 | 핸드폰 요금 | 구현 | C++ |
1406 | 에디터 | 리스트 | C++ |
1439 | 뒤집기 | 그리디1 그리디2 |
C++ C++ |
1475 | 방 번호 | 구현 | C++ |
1697 | 숨바꼭질 | BFS | C++ |
1715 | 카드 정렬하기 | 우선순위큐 | C++ |
1874 | 스택 수열 | 스택 | C++ |
1919 | 애너그램 만들기 | 구현 | C++ |
1926 | 그림 | BFS | C++ |
2164 | 카드2 | 큐 | C++ |
2178 | 미로 탐색 | BFS | C++ |
2309 | 일곱 난쟁이 | 완전탐색 | C++ |
2438 | 별 찍기 - 1 | 구현 | C++ |
2439 | 별 찍기 - 2 | 구현 | C++ |
2440 | 별 찍기 - 3 | 구현 | C++ |
2441 | 별 찍기 - 4 | 구현 | C++ |
2442 | 별 찍기 - 5 | 구현 | C++ |
2443 | 별 찍기 - 6 | 구현 | C++ |
2444 | 별 찍기 - 7 | 구현 | C++ |
2445 | 별 찍기 - 8 | 구현 | C++ |
2446 | 별 찍기 - 9 | 구현 | C++ |
2480 | 주사위 세개 | 구현 | C++ |
2490 | 윷놀이 | 구현 | C++ |
2493 | 탑 | 스택 | C++ |
2504 | 괄호의 값 | 스택 | C++ |
2557 | Hello World | 구현 | C++ |
2562 | 최댓값 | 구현 | C++ |
2576 | 홀수 | 구현 | C++ |
2577 | 숫자의 개수 | 구현 | C++ |
2587 | 대표값2 | 구현 | C++ |
2752 | 세수정렬 | 구현 | C++ |
2753 | 윤년 | 구현 | C++ |
3190 | 뱀 | 시뮬레이션 | C++ |
3273 | 두 수의 합 | 투포인터 | C++ |
3986 | 좋은 단어 | 스택 | C++ |
4179 | 불! | BFS | C++ |
4949 | 균형잡힌 세상 | 스택 | C++ |
5397 | 키로거 | 리스트 | C++ |
5427 | 불 | BFS | C++ |
5430 | AC | 덱 | C++ |
7562 | 나이트의 이동 | BFS | C++ |
7569 | 토마토 | BFS | C++ |
7576 | 토마토 | BFS | C++ |
9012 | 괄호 | 스택 | C++ |
9498 | 시험 성적 | 구현 | C++ |
10026 | 적록색약 | BFS | C++ |
10093 | 숫자 | 구현 | C++ |
10171 | 고양이 | 구현 | C++ |
10773 | 제로 | 스택 | C++ |
10799 | 쇠막대기 | 스택 | C++ |
10804 | 카드 역배치 | 구현 | C++ |
10807 | 개수 세기 | 구현 | C++ |
10808 | 알파벳 개수 | 구현 | C++ |
10825 | 국영수 | 정렬 | C++ |
10828 | 스택 | 스택 | C++ |
10845 | 큐 | 큐 | C++ |
10866 | 덱 | 덱 | C++ |
10869 | 사칙연산 | 구현 | C++ |
10871 | X보다 작은 수 | 구현 | C++ |
11328 | Strfry | 구현 | C++ |
13300 | 방 배정 | 구현 | C++ |
14502 | 연구소 | BFS | C++ |
14888 | 연산자 끼워넣기 | 백트래킹 | C++ |
15552 | 빠른 A+B | 구현 | C++ |
15686 | 치킨 배달 | 백트래킹 | C++ |
16234 | 인구 이동 | BFS | C++ |
18258 | 큐 2 | 큐 | C++ |
18310 | 안테나 | 정렬 | C++ |
18352 | 특정 거리의 도시 찾기 | BFS1 BFS2 |
C++ C++ |
18405 | 경쟁적 전염 | BFS1 BFS2 |
C++ C++ |
18406 | 럭키 스트레이트 | 구현 | C++ |
18428 | 감시 피하기 | 백트래킹 | C++ |