자바 알고리즘 스터디
규칙
- 목적: 기업 코딩테스트 대비, 알고리즘 실력 향상 및 삼성 코딩테스트 A형 통과
- 스터디 일정: 주 1회 진행
- 매주 목요일 오후 10시 시작
- 약 1시간 ~ 2시간 소요
- 스터디 당일 각자 풀었던 문제를 설명하고 서로의 코드를 리뷰
- 스터디 진행 후 다음에 풀 문제를 정하고 디스코드에 공지
- 파일 업로드 규칙 : N주차(폴더) / 문제플랫폼_문제번호 (폴더) / 문제플랫폼_문제번호_문제이름_이름.java (파일) (Ex. BOJ_2577_숫자의 개수_한재윤.java)
- 커밋메세지 규칙 : Solve: 문제플랫폼_문제번호 EX)Solve: BOJ_2577, Solve: SWEA_1475
- 매주 스터디 일정 전까지 문제 풀이 후 원격 저장소에 업로드
스터디원
- 김명준
- 김성태
- 조원희
- 한재윤
스터디 일정
13주차(11/10) (목)
Programmers - 괄호변환 - 문자열
Programmers - 프렌즈4블록 - 문자열
12주차(11/03) (목)
Programmers - 전화번호 목록 - 구현
Programmers - 모음사전 - 문자열
11주차(10/27) (목)
Programmers - 최댓값과 최솟값 - 구현
Programmers - JadenCase 문자열 만들기 - 문자열
(10/13) (목) - 역량테스트 대비 개인 공부
10주차(10/06) (목)
SWEA-2383 점심 식사시간 - 구현
SWEA-2477 차량 정비소 - 구현
9주차(09/28) (목)
SWEA-4014 활주로 건설 - 구현
SWEA-2112 보호 필름 - 구현
8주차(09/22) (목)
SWEA-5656 벽돌 깨기 - 구현
SWEA-2105 디저트 카페 - 구현
7주차(09/15) (목)
SWEA-2115 벌꿀채취 - 구현
SWEA-5658 보물상자 비밀번호 - 구현
6주차(09/08) (목)
SWEA-5653 줄기세포배양 - 구현
(08/30) (화) - 역량테스트 대비 개인 공부
5주차(08/23) (화)
SWEA-1227 미로2 - 구현 [Dif4]
SWEA-2117 홈 방범 서비스 - 구현
SWEA-2819 격자판의 숫자 이어붙이기 - 구현 [Dif4]
SWEA-8382 방향 전환 - 구현 [Dif4]
BOJ-16236 아기상어 - 구현 [G3]
4주차(08/18) (목)
BOJ-16637 괄호 추가하기 - 구현 [G4]
BOJ-3190 뱀 - 구현 [G4]
BOJ-1074 Z - 분할정복 [S1]
4주차(08/16) (화)
BOJ-17136 색종이 붙이기 - 백트래킹 [G2]
BOJ-2573 빙산 - BFS, DFS [G4]
BOJ-13460 구슬탈출2 - BFS, DFS, 구현 [G1]
BOJ-15686 치킨배달 - 백트래킹, 구현 [G5]
BOJ-16173 점프왕 쩰리 - BFS, DFS, 구현 [S5]
BOJ-1012 유기농 배추 - BFS, DFS [S2]
3주차 (08/11) (목)
BOJ-7569 토마토 - 그래프 탐색 [G5]
BOJ-2170 선 긋기 - 그리디 [G5]
3주차 (08/09) (화)
SWEA-6853 직사각형과 점 - 구현 [Diff3]
BOJ-1158 요세푸스 문제 - 연결리스트 [S4]
BOJ-1991 트리 순회 - 트리 [S1]
BOJ-15666 N과 M (12) - 순열, 조합 [S2]
2주차 (08/04) (목)
BOJ-1874 스택 수열 - 스택 [S2]
BOJ-10799 쇠막대기 - 스택의 활용 [S3]
BOJ-1927 최소 힙 - 우선순위 큐 [S2]
2주차 (08/02) (화)
BOJ-2164 카드2 - 큐 [S4]
BOJ-5430 AC - 덱 [G5]
1주차 (07/28) (목)
BOJ-2577 숫자의 개수 - 배열 [B2]
BOJ-1475 방 번호 - 배열 [S5]
BOJ-3273 두 수의 합 - 배열 [S3]
바킹독 알고리즘 문제집
번호 | 주제 |
---|---|
0x00 | 오리엔테이션 (문제집 X) |
0x01 | 기초 코드 작성 요령 I (문제집 X) |
0x02 | 기초 코드 작성 요령 II |
0x03 | 배열 |
0x04 | 연결 리스트 |
0x05 | 스택 |
0x06 | 큐 |
0x07 | 덱 |
0x08 | 스택의 활용(수식의 괄호 쌍) |
0x09 | BFS |
0x0A | DFS (문제집 X) |
0x0B | 재귀 |
0x0C | 백트래킹 |
0x0D | 시뮬레이션 |
0x0E | 정렬 I |
0x0F | 정렬 II |
0x10 | 다이나믹 프로그래밍 |
0x11 | 그리디 |
0x12 | 수학 |
0x13 | 이분탐색 |
0x14 | 투 포인터 |
0x15 | 해시 |
0x16 | 이진 검색 트리 |
0x17 | 우선순위 큐 |
0x18 | 그래프 |
0x19 | 트리 |
0x1A | 위상 정렬 |
0x1B | 최소 신장 트리 |
0x1C | 플로이드 알고리즘 |
0x1D | 다익스트라 알고리즘 |
그 외 문제 추천
- 코딩테스트 시작을위한 백준문제 추천
- 코딩테스트 대비를 위한 백준 문제 추천
- 이진탐색이란? 백준 문제추천
- DFS BFS란? 백준 문제추천
- 그리디 알고리즘(Greedy Algorithm) 및 백준 문제 추천
- 백트래킹(Backtracking)이란? 문제 추천
문제집 설명
일부 단원을 제외하면 각 단원에 대응되는 문제집이 있습니다. 설령 이론을 잘 이해했더라도 문제를 풀어내지 못한다면 아무런 의미가 없기 때문에 반드시 문제를 많이 풀어보셔야 합니다.
문제집의 문제는
연습 문제 : 강의 내에서 같이 풀어본 문제
기본 문제 : 특별한 응용 없이 강의에서 다룬 내용을 바탕으로 해결할 수 있는 문제
응용 문제 : 약간의 응용이 필요해서 난이도가 있는 문제
로 분류됩니다. 기본 문제, 응용 문제 중에서 특히 풀어보길 권장하는 문제는 ✔으로 표시를 해두었습니다.
먼저 강의 내에 있는 제 코드를 참고하지 않고 연습 문제를 풀어봅니다. 그 후에 기본 문제✔까지는 풀어보시는걸 강력하게 권장합니다. 기본 문제✔를 풀 때 아예 풀이를 모르겠다면 아직 학습이 부족한 상태이니 강의를 다시 확인하실 필요가 있습니다.
기본 문제✔를 풀 때 풀이는 떠올릴 수 있지만 구현에서 문제가 생기는 경우라면 정답 코드를 참고해서 구현법을 익힌 후 다른 기본 문제를 풀이 참고 없이 풀면서 구현력을 기르시는걸 추천드립니다.
기본 문제✔를 풀 때 큰 어려움이 없다면 응용 문제✔도 확인해서 문제 해결 능력을 길러보시는걸 추천드립니다. 응용 문제✔ 분류의 문제들은 다소 발상이 어렵거나 새로운 테크닉을 필요로 할 수 있기 때문에 30분-1시간 정도 고민한 후에도 풀이를 모르겠다면 정답 코드나 풀이를 확인해도 괜찮습니다. 그러나 풀이만 확인하고 끝내는 것이 아니고 반드시 풀이를 바탕으로 혼자 힘으로 구현해보는 것을 추천드립니다.
응용 문제✔를 모두 해결했다면 우선 다음 단원으로 넘어가고, 나중에 완강을 한 후 남은 응용 문제를 풀이 참고 없이 도전해보는걸 추천드립니다.
정리하자면 문제집에서 연습 문제, 기본 문제✔, 응용 문제✔ 까지 풀고 다음 단원으로 넘어가는걸 추천드립니다. 응용 문제✔는 풀이를 참고해도 괜찮지만 연습 문제, 기본 문제✔는 강의의 내용을 잘 이해했다면 풀이를 참고하지 않고 구현할 수 있기 때문에 혼자 힘으로 풀어보길 권장합니다. 만약 응용 문제✔를 푸는데에 어려움이 있다면 응용 문제✔ 대신 기본 문제를 더 풀고 다음 단원으로 넘어가도 괜찮습니다