Skip to content

Latest commit

 

History

History
74 lines (57 loc) · 2.06 KB

File metadata and controls

74 lines (57 loc) · 2.06 KB

Implementation (구현)

개념

문제에서 요구하는 내용을 그대로 구현하는 유형입니다. 특별한 알고리즘보다는 문제 이해와 정확한 구현이 중요합니다.

특징

  • 알고리즘보다는 구현 능력이 중요
  • 시뮬레이션, 조건 분기 등이 많음
  • 코드가 길어질 수 있음
  • 실수하기 쉬운 디테일이 많음

자주 나오는 패턴

1. 시뮬레이션

  • 문제에서 제시한 과정을 그대로 시뮬레이션
  • 예: 로봇 이동, 게임 시뮬레이션

2. 완전 탐색 (Brute Force)

  • 모든 경우의 수를 확인
  • 시간복잡도가 허용하는 경우 사용

3. 구현 + 자료구조

  • 적절한 자료구조를 선택하여 구현
  • 예: Map, Set, Queue 활용

4. 좌표/방향 이동

// 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;
}

5. 문자열 처리

  • 문자열 파싱, 변환 등

구현 시 주의사항

  1. 인덱스 범위: 배열 범위를 벗어나지 않도록 주의
  2. 초기화: 변수를 올바르게 초기화
  3. 자료형: int 범위를 초과하면 long 사용
  4. 입출력: BufferedReader/Writer로 빠른 입출력
  5. 예외 케이스: 경계값, 특수 케이스 확인

디버깅 팁

// 배열 출력
System.out.println(Arrays.toString(arr));
System.out.println(Arrays.deepToString(arr2d));

// 중간 과정 출력
System.out.println("Debug: " + variable);

풀이한 문제

번호 문제 제목 세부 알고리즘 난이도 상태 링크
- - - - - -