문제에서 요구하는 내용을 그대로 구현하는 유형입니다. 특별한 알고리즘보다는 문제 이해와 정확한 구현이 중요합니다.
- 알고리즘보다는 구현 능력이 중요
- 시뮬레이션, 조건 분기 등이 많음
- 코드가 길어질 수 있음
- 실수하기 쉬운 디테일이 많음
- 문제에서 제시한 과정을 그대로 시뮬레이션
- 예: 로봇 이동, 게임 시뮬레이션
- 모든 경우의 수를 확인
- 시간복잡도가 허용하는 경우 사용
- 적절한 자료구조를 선택하여 구현
- 예: Map, Set, Queue 활용
// 4방향 (상하좌우)
int[] dx = {-1, 1, 0, 0};
int[] dy = {0, 0, -1, 1};
// 8방향 (상하좌우 + 대각선)
int[] dx = {-1, -1, -1, 0, 0, 1, 1, 1};
int[] dy = {-1, 0, 1, -1, 1, -1, 0, 1};
// 좌표 이동
for (int i = 0; i < 4; i++) {
int nx = x + dx[i];
int ny = y + dy[i];
// 범위 체크
if (nx < 0 || nx >= n || ny < 0 || ny >= m) continue;
}- 문자열 파싱, 변환 등
- 인덱스 범위: 배열 범위를 벗어나지 않도록 주의
- 초기화: 변수를 올바르게 초기화
- 자료형: int 범위를 초과하면 long 사용
- 입출력: BufferedReader/Writer로 빠른 입출력
- 예외 케이스: 경계값, 특수 케이스 확인
// 배열 출력
System.out.println(Arrays.toString(arr));
System.out.println(Arrays.deepToString(arr2d));
// 중간 과정 출력
System.out.println("Debug: " + variable);| 번호 | 문제 제목 | 세부 알고리즘 | 난이도 | 상태 | 링크 |
|---|---|---|---|---|---|
| - | - | - | - | - | - |