나는 문제를 간결하고, 창의적이고, 빠르게 풀 수 있다. 되게 만들 것이다.
- commit 메세지 :
커밋 타입 : [문제 출처(플랫폼)] 문제이름 / 문제유형 / 난이도
- commit 타입 :
타입 | 내용 |
---|---|
init | 작업 세팅 커밋 |
code | 코드 작성 |
fix | 코드 수정 |
docs | 문서를 수정한 경우, 파일 삭제, 파일명 수정 등 ex) README.md |
chore | 주석 추가, 자잘한 문서 수정 |
code review | 코드 리뷰 반영 |
add | 기존에 푼 문제 대한 또 다른 솔루션 코드 추가 |
- 플랫폼 작성법 통일 :
[BOJ] - 백준
[PGS] - 프로그래머스
[LTC] - 리트코드
[CFS] - 코드포스
[SEA] - 삼성SW Expert Academy
[ETC] - 그외
문제 풀이, 문제 풀이, 복습, 복습. 손가락이 외울정도로 반복만이 살길이다.
1️⃣ 강의를 보고나서 개념을 머릿속으로 생각하거나, 종이 그려보면서 이해한다.
-> 팔짱끼고 강의만 쳐다보는 것은 전혀 도움이 되지 않는다. 손을 계속 움직이자.
2️⃣ 조금씩 보면서 코드로 작성해본다. (주석 간단하게라도 다는 습관 들이기)
3️⃣ 정답을 보지않고 똑같이 코드를 작성해본다.
4️⃣ 관련 유형의 문제를 풀어본다.
🍀 할 수 있다는 믿음, 소망, 사랑(?) 가지기
🍀 대충하지 않기
🍀 포기하지 않기
🍀 안풀리는 문제는 30분이상 고민하기 (뇌야 움직여라 !)
🍀 그래도 안풀리면 구글링하거나 주위 환기 시키기 (다른 일로 잠깐 머리를 식히거나 장소를 옮겨도 Good👍🏻)
🍀 정답을 맞추면 맞추는데에서 끝나는게 아니라, 조금이라도 시간을 단축시킬 수 있는 방법이 있는지 고민해본다.
🍀 다른 좋은 해결법 1-2개 보기. 모범이 되는 코드를 보는 것 또한 나를 성장시킨다.
예를들어) 문제가 1000_A+B라고 하면,
- 문제 출처(플랫폼)을 폴더명으로 가장 상위 폴더를 만든다.
- 하위 파일들의 이름은 문제번호 혹은 문제이름으로 만든다.
어느 상황에 그 코드를 리뷰할 수도 있고 복습을 하는 나에게도 도움이 되지 않는다. 그리고 코드를 참조할 수도 있는 제 3자를 위해서라도 의미있는 변수 사용을 지향하자.
- 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과 같이 주어진 변수를 쓰는 것이 코드를 보는 입장에서 알아보기 더욱 쉽기 때문에 해당 변수를 사용한다.
- 알고리즘, 자료구조 유형별 개념 학습 탄탄히 하기
- 올해 안에 프로그래머스 Lv2 문제 무난히 풀기
- PCCP Lv2 취득하기
- [Inflearn] 자바스크립트 알고리즘 문제풀이 입문 : https://www.inflearn.com/course/%EC%9E%90%EB%B0%94%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-%EB%AC%B8%EC%A0%9C%ED%92%80%EC%9D%B4/dashboard
- [BAEKJOON] : https://www.acmicpc.net/
- [LEETCODE] : https://leetcode.com/
- [PROGRAMMERS] : https://programmers.co.kr/
- [YOUTUBE] 코딩문, 자바스크립트 코딩테스트 문제풀이 : https://youtu.be/zbH7YqUxFpA