[오늘부터 알고리즘] #2 구현(Implementation)

ma·5일 전
post-thumbnail

📌 구현이란?

구현 알고리즘은 머릿속에 있는 문제 해결 과정을 코드로 정확하게 표현하는 문제 유형이다. 그래서 논리적으로는 이해가 가지만 코드로 작성하게 되면 길어지는 경우가 있다.

즉, 복잡한 아이디어보다는 조건에 맞게 하나씩 그대로 작성하는 능력이 중요하다.

대표적으로는 다음과 같은 상황에서 사용된다.

문자열 처리
시뮬레이션 문제
좌표 이동 문제
배열 회전 문제

1️⃣ 대표적인 문제

🕹️ 상하좌우 문제

N x N 크기의 공간에서
사용자의 이동 계획에 따라 위치를 이동하는 문제

이동 가능한 방향:

L : 왼쪽
R : 오른쪽
U : 위
D : 아래

<풀이 핵심>
: 이동 방향에 따라 좌표를 직접 변경한다.

int n = 5;

String[] move = {"R", "R", "R", "U", "D", "D"};

int x = 1;
int y = 1;

for(String dir : move){

    if(dir.equals("L") && y > 1){
        y--;
    }

    else if(dir.equals("R") && y < n){
        y++;
    }

    else if(dir.equals("U") && x > 1){
        x--;
    }

    else if(dir.equals("D") && x < n){
        x++;
    }
}

System.out.println(x + " " + y);

2️⃣ 그리디 알고리즘 문제 공식

구현 문제를 보면 보통 아래 흐름으로 접근한다.

✅ STEP 1. 문제 조건 정리하기
ex)

  • 무엇을 이동하는가?
  • 무엇을 출력해야 하는가?
  • 예외 조건은 무엇인가?

✅ STEP 2. 변수와 상태 정의하기

현재 위치, 방향, 시간, 배열 상태 등을 변수로 저장한다.

예시:

좌표(x, y)
방향(dx, dy)
시간(time)
방문 여부(boolean)

✅ STEP 3. 조건대로 그대로 코드 작성하기

구현 문제는 알고리즘 아이디어보다
“문제에서 하라는 것을 정확하게 구현”하는 것이 핵심이다.

반복문과 조건문을 이용해
문제 흐름을 차근차근 코드로 옮긴다.

구현 문제는 문제 조건을 꼼꼼히 읽고 직접 흐름을 따라가는 연습이 핵심이다

3️⃣ 구현 알고리즘 문제

profile
내가 공부하기 위해

0개의 댓글