스터디 참여방법 : 해당 repository Fork 후 [email protected] 메일 or pull requests
알고리즘 실력 향상을 위해 만든 Baekjoon문제풀이 스터디
1주일간 정해진 알고리즘 개념을 공부하고, 알고리즘에 관련된 필수문제 3문제를 푼 뒤, 서로의 코드를 리뷰한다.
될 수 있으면 추천문제까지 푼다.
자세히
- 알고리즘은 수학과 비슷하다. 공식(알고리즘)을 배워서 문제에 적용해 푸는 방식이다.
- 그말은 즉, 한번 진도를 놓치면 상당히 따라가기 힘들다. 그러니 열심히하자!
(
(유튜브, 구글 검색, 유료 강의) 중 선택
추천 강의 1 : 바킹독님 (C++강의지만, 알고리즘 원리를 아는데 도움됌.)
추천 강의 2 : 류호석님 (JAVA)
무조건 복습 많이하는게 실력향상에 도움됨!!
1️⃣ 강의를 보고나서 개념을 머릿속으로 생각하거나, 종이 그려보면서 이해한다.
2️⃣ 조금씩 보면서 코드로 작성해본다. (주석 필수로 달아보기)
3️⃣ 정답을 보지않고 똑같이 코드를 작성해본다.
4️⃣ 관련 문제를 풀어본다.
1️⃣ 약속시간 지키기
2️⃣ 대충하지 않기
3️⃣ 포기하지 않기
4️⃣ 하루에 몰아서 하지 않기
5️⃣ 안풀리는 문제는 30분이상 고민하기
6️⃣ 그래도 안풀리면 구글링
(추천 키워드 : 백준문제번호 언어)
7️⃣ 알고리즘이 어려워질수록 지치기 쉽다. 도저히 안풀리면 하루정도 나중에 문제를 풀거나, 질문하기
8️⃣ 정답을 맞추면 맞추는데에서 끝나는게 아니라, 조금이라도 시간을 단축시킬 수 있는 방법이 있는지 고민해본다.
9️⃣ 쉬어가는 주는 다들 너무 지쳐있거나 or 시험기간 or 과반수가 찬성할 때
❗️ 해당 규칙을 지키지 않으면 pull request가 취소 될 수 있다. ❗️
백준에 정답을 제출해서 맞췄을 때 나오는 결과를 적어주면 됩니다.
- Example
// 언어 : C++ , (성공/실패) : 1/0 , 메모리 : 2796 KB , 시간 : 92ms
- JAVA
// 언어 : JAVA , (성공/실패) : 1/4 , 메모리 : 45008 KB , 시간 : 208 ms
- Python
# 언어 : Python , (성공/실패) : 1/4 , 메모리 : 45008 KB , 시간 : 208 ms
예를들어) 문제가 1000_A+B라고 하면,
- 1000_A+B 폴더에 들어간다.
- (이름_사용언어) 폴더를 만든다.
- 폴더에 들어가 작성한 파일을 (문제번호_문제이름)으로 만든다. (자바의 경우는 프로젝트 이름을 저렇게 바꿔준다.)
코딩 테스트에 합격하게 되면, 면접 때 그 코드를 리뷰할 수도 있고
또는, 면접관이 직접 채점하는 경우도 있기 때문에 의미없는 변수를 남발하면 안된다.
- Example) C++
// 문제 : 가격과 물품의 수량을 받아 총 물품의 가격을 출력하는 프로그램을 작성하시오.
// 나쁜 예
#include <iostream>
using namespace std;
int main(void){
int a,b; // 의미없는 변수
cin >> a >> b;
cout << a << b;
}
// 좋은 예
#include <iostream>
using namespace std;
int main(void){
int price,items; // 변수 이름을 잘 정하자!
cin >> price >> items;
cout << price << items;
}
- 예외 경우 (문제에서 주어진 변수가 다음과 같을 때)
이럴땐, N,M과 같은 변수를 쓰는게 코드를 보는 입장에서 알아보기 더욱 쉽기 때문에, 그냥 N,M을 변수로 쓴다.
Pull requests 방법 <= 링크를 타고 들어가면 나옵니다.
순서 | 알고리즘 | 문제집 | 추천 문제 수 | 총 문제 수 | 상태 |
00 | 백준 익히기 | 바로가기 | 5 | 6 | 4/5 |
01 | 정렬 1 | 바로가기 | 3 | 5 | 4/5 |
02 | 정렬 2 (sort함수 사용) | 바로가기 | 3 | 5 | 2/5 |
03 | 수학 | 바로가기 | 5 | 5 | 2/5 |
04 | 에라토스테네스의 체 | 바로가기 | 5 | 5 | 2/5 |
05 | 자료구조 1 (스택,큐,덱) | 바로가기 | 7 | 7 | 2/5 |
06 | 자료구조 2 (우선순위 큐) | 바로가기 | 4 | 4 | 2/5 |
07 | 동적 프로그래밍 1 | 바로가기 | 6 | 7 | 2/2 |
08 | 동적 프로그래밍 2 | 바로가기 | 7 | 8 | 1/2 |
09 | 투 포인터 | 바로가기 | 6 | 7 | 0/2 |
10 | 완전 탐색 | 바로가기 | 6 | 7 | 0/2 |
11 | 이분 탐색 | 바로가기 | 준비중.. | ||
12 | 백트래킹 | 바로가기 | 준비중.. | ||
13 | 분할 정복 | 바로가기 | 준비중.. | ||
14 | 문자열 1 | 바로가기 | 준비중.. | ||
15 | 문자열 2 | 바로가기 | 준비중.. | ||
16 | 최단거리 (다익스트라) | 바로가기 | 준비중.. | ||
17 | 위상정렬 | 바로가기 | 준비중.. | ||
18 | 분리 집합 (유니언 파인드) | 바로가기 | 준비중.. | ||
19 | 최소 스패닝 트리 | 바로가기 | 준비중.. | ||
20 | 트라이 | 바로가기 | 준비중.. | ||
21 | 동적 프로그래밍 트리 | 바로가기 | 준비중.. |
- 알고리즘 별 개념학습과 관련 문제풀이
- 백준 길라잡이 문제집 다 풀기
- 삼성 SW 역량 테스트 기출 문제 다 풀기