기본)
문제를 잘 읽기
-요구사항 체크
-너무 길거나 어려워 보이는 문제는 요구사항을 단순화 시키기
-위 두개를 위해 입출력 참고
가만히 있지 않기
- 입출력 테스트에 필요한 코드를 습관적으로 작성하기 (자바가 입출력이 어렵기때문에)
- 필요한 변수나 자료구조에 대해서 정리
- 막연하게 모르겠다 말고 어디가 이해가 안가는지 생각
- 이런 과정을 수월하게 하기 위해 매뉴얼한 작업 루틴을 두자 (테스트 기본용으로 작성해 두기)
문제를 풀어내는 데 집중하기
- 시간이 충분하지 않는 경우가 많고 솔 수(통과한 갯수)가 더 중요함
- 특히 공부하는 과정에서는 더더욱 먼저 풀어보고 개선하는 방식으로 진행해야 효율이 좋음
나에게 맞는 IDE를 활용 (코테를 진짜 볼때는 프로그래머스 콘솔에서만 할수 있는 경우도 있어)
변수명 대충 쓰지 않기
- 제출하는 코드의 기본 소양이라고 생각함
- 반복문 i나 iter와 같은 컨벤션이 된 변수명 말고는 최대한 자세하게 작성하기
- 구현이 길어지면 이것 때문에 낭비를 하는 시간이 더 큼
어떻게든 문제를 풀기 시작
문제 푸는 순서, 팁)
1. 문제를 잘 읽고 최대한 많이 생각해서 문제를 가장 단순하게 정의하기 (현혹되지 말기)
2. 내가 바로 이불력을 찍어볼 수 있는 환경 만들어두기
- 처음부터 다 풀고 확인하면 하나씩 다시 검사해야하니 코드를 구현해가면서 바로바로 입출력을 찍어보기
3. 복잡한 문제를 단순한 여러가지 문제로 나누기
단계별 팁)
1.일단은 어떻게든 구현하는게 우선(방법이 틀려도, 효율이 안나와도, 시간초과로 페일이 나도)
2. 구현에 성공했다면 다른사람들의 코드를 참고 (창의적은 해결법, 내가 몰랐던 라이브러리, 메소드, 내가 몰랐던 지식 등)
3. 더 이상 문제가 풀리지 않는다면 알아야 할 것들을 몰라서 못 풀고 있을 수 있음 (정규식, 자료구조-알고리즘지식들)
4. 3번의 지점에 도달하면 자료구조와 알고리즘에 대해 공부하기 (하지만 일단 구현이 우선)
1. 시간, 공간 복잡도
2. 문자열 관련 자주나오는 문제, 해결 테크닉, 메소드들
3. 기본적인, 자주나오는 수학 지식(fibo, 수열, 약수 등)과 해당문제 푸는 별도의 테크닉
4. arr, list, 해쉬테이블 등
5. 이진탐색 등
6. sort
7. stack, queue
8. tree, heap
9. grah
10. hash
11. dfs, bfs
12. dp
13. 더 많이 있는데 취업용 코테에서는 db, dfs, bfs 정도가 마지노선 같다
5. 이 즈음까지 오면 언어를 바꾸는 것도 생각해 보기 cpp라던지 파이선이라던지
6. java로 취업하려고 한다면 java로 응시하는 메리트는 확실히 있으며, 굳이 java를 사용한다면 java의 이해도를 어필하는 방식의 코딩도 가능(Comparator 구현 등)
준비한 문제
1. 없는 숫자 더하기
2. 최소 직사각형
3. 내 마음대로 정렬하기
'Experience > 항해99' 카테고리의 다른 글
007-010 본수업 1주차/ 풀스택 미니 프로젝트 (0) | 2022.11.23 |
---|---|
항해 알고리즘 모의고사 (0) | 2022.11.22 |
011 - 알고리즘 언어 과제 (0) | 2022.11.18 |
003 - 항해 입학시험 코드 회고 (0) | 2022.11.09 |
001 - PreOnboarding 주 시작 (0) | 2022.11.07 |