우리는 어떻게 구현할지 반복문과 조건문을 활용하면서 루프를 돌리며 순회처리를 기준으로 구상한다
반복 / 탐색 / 순회 / 조건 (1, 2차원) -> 자료구조 활용 -> 재귀 / 그래프 / 그리디
기존 기출 푸는 것도 중요하고 전체적으로 접근방식을 공부하는 것도 중요
직접 구현해야 하는 문제는 문제를 풀면서 직접 아이디어를 내는 것
속독
- 스토리 빼고 전체적인 문제를 파악
- 조건 / 제약 체크
TC 손풀기
- 입력에 대한 출력이 나와야 한다
- CPU 처럼
정독
- 시험시간 50% 가 지났으면 문제 다시 읽어라
- 모든걸 지우고 초기 템플릿 상태에서 재시작 해라
유형을 판단하기는 힘들지만 난이도는 정해져있다. A 형인데 이정도 난이도일것이다 라고 생각해볼 수 있다
하나만 생각하고 바로 진행하기보다는 여러 가지 접근방법을 생각해보자
완전히 새로운 문제는 없다
이전에 풀었던 문제와 유사한지, 특정 자료구조 적용, 전형적인 알고리즘 적용 가능한지 체크
문제가 시키는대로 시도
문제 설명대로 예시를 처리하는 것이 접근 가능한지 체크 (제한 조건 내)
여러 입력에 대한 출력을 계산하면서 규칙성/조건/수식 적용 가능한지 체크
유형/규칙성을 발견하기 힘들다면
가능한 모든 경우를 처리하면서 풀이가능한지 체크
전체문제가 아닌 일부분으로 나누거나, 단계를 나누어 접근
반대로 접근하는 경우를 체크 (문제설명, 조건, array 순회 등)
모든 접근은 시각적으로 (손으로 그리면서)
실명을 적어야 한다 (변수이름, 범위 등)
익숙한 이름이나 구조를 써야 한다
오타없이 한 동작이 한 눈에 보이도록 한다
기본기는 철저히 연습
기본기가 탄탄해야 실수없이 구현 가능
입출력, 2차원 array 사용, 다중 루프제어
가장 효율적인/짧은/멋있는 코드보다 기본적인 [반복/조건]을 빈틈없이 구현
손코딩: 사용하는 중요 array, 범위, 핵심코드를 실명/시각적으로 설계하고 접근
필요한 위치에서 필요한 디버깅 가능하도록 디버거 사용법 익히기
문제읽기 > 접근방법 구상 > 핵심코드 손코딩(키보드 멀리)