나의 알고리즘 풀이 루틴
문제를 조금씩 풀어가며 만들고 있는 나만의 루틴이다.
- 문제에 따라 30분 ~ 1시간 타이머 시작
- 손으로 먼저 풀어보기
- IDE에 적은 내용을 바탕으로 슈도 코드 주석 달기
- 코드로 구현하기
- 에러가 발생했다면 디버깅 모드 적극 활용하기
- 정해둔 시간 안에 풀지 못했다면 다른 사람 풀이 보고 이해하기
- 새롭게 알게 된 메서드와 함께 블로그에 정리하기
시간은 좀 걸리더라도 확실히 이해는 되는 중이다.
계속해서 문제를 풀고 있으니 다양한 시도를 해보면서 나에게 맞는 방식을 찾아보자.
문제 풀이 세션
공통 팁
- 문제를 잘 읽기
- 요구사항은 꼼꼼하게 읽고, 단순하게 정의해보기
- 입출력을 참고하자
- 가만히 있지 않기
- 입출력 테스트에 필요한 코드를 습관적으로 작성하기
- 필요한 변수나 자료구조에 대해서 정리하기
- 막연하게 모르겠다고 생각하지 말고, 어디가 이해가 안 가는지 생각해보기
- 필요한 변수나 자료구조에 대해서 정리하기
- 문제 풀어내는데 집중하기
- 경험적으로 시간이 충분하지 않은 경우가 많고 솔 수가 더 중요함
- 특히 공부할 때는 먼저 풀고 → 개선하는 방식이 효율 좋음
- 나에게 맞는 IDE 사용
- 변수명 대충 쓰지 않기
- 최대한 자세하게
- 대충 설정해서 낭비하는 시간이 더 큼
문제 푸는 순서 팁
- 문제를 잘 읽고 최대한 많이 생각해서 문제를 가장 단순하게 정의하기
- 내가 바로 입출력을 찍어 볼 수 있는 환경 만들어두기
- 복잡한 문제를 단순한 여러 가지로 나누기
단계별 팁
- 일단은 어떠게든 구현하는 게 우선(방법이 틀려도, 효율이 안 나와도, 시간 초과로 fail이 나도)
- 다른 사람들의 코드를 참고해보기(내가 몰랐던 라이브러리나 메서드 , 내가 몰랐던 지식 등)
- 더 이상 풀리지 않는다면 몰라서 못 푸는 걸 수도 있음(정규식, 자료구조, 알고리즘 지식 등)
- 3번의 지점에 도달하면 자료구조와 알고리즘에 대해서 공부하기(그래도 구현이 우선)
- 시간, 공간 복잡도
- 문자열 관련 자주 나오는 문제, 해결 테크닉, 메서드들
- 기본적인, 자주 나오는 수학 지식(fibo, 수열, 약수 등)과 해당 문제 푸는 별도의 테크닉
- arr, list , 해쉬 테이블 등
- 이진 탐색 등
- sort
- stack, quere
- tree, heap
- graph
- hash
- dfs, bfs
- db
- … 등등
오늘의 나는
알고리즘 문제 6개를 해결했다.
저번 프로젝트를 준비하면서 잠을 많이 못 잤더니 피로가 왕창 밀려왔다.
조금 지쳐갈 때쯤 팀원분이 추천해주신 노동요를 들으며 다시 기운을 냈다.
문제 1개를 해결할 때마다 춤도 췄다(?)
체력 관리도 해야 하는데.. 왜 하루는 24시간일까.
해야 할 일이 많은 만큼 시간 관리에 더 신경 쓰자.
'📝 TIL' 카테고리의 다른 글
[TIL] 2주차 알고리즘 모의고사 (4) | 2022.11.22 |
---|---|
[TIL] 2주차 알고리즘 코드 리뷰, Java 스터디 (0) | 2022.11.21 |
[TIL] 1주차 알고리즘ㅣ주간 시작 (0) | 2022.11.18 |
[TIL] 1주차 미니 프로젝트ㅣ발표 (0) | 2022.11.18 |
[TIL] 1주차 미니 프로젝트ㅣ협업과 에러 (0) | 2022.11.16 |