[Algorithm] 구현: 시뮬레이션과 완전 탐색
Posted: Updated:
구현(Implementation)
기본적으로 머릿속에 있던 어떤 알고리즘과 생각을 소스코드로 바꾸는 과정이다.
머릿속으로 세운 알고리즘을 실제로 코드로 작성해서 프로그램으로 만들 수 있어야 한다.
알고리즘 문제를 푸는 과정에서 구현은 반드시 필요한 과정이다.
사실 모든 문제는 구현이라고 할 수 있겠지만, 일반적으로 구현 유형의 문제라고 하면 구현에 초점이 맞춰져 있거나 풀이를 떠올리는 것은 쉽지만 구현이 어려운 문제를 의미한다.
예시
- 알고리즘은 간단한데 코드가 지나칠 만큼 길어지는 문제
- 실수 연산을 다루고, 특정 소수점까지 출력해야 하는 문제
- 문자열을 특정한 기준에 따라서 끊어 처리해야 하는 문제
- 파이썬이 다른 언어보다 편리한 편이다.
- 적절한 라이브러리를 찾아서 사용해야 하는 문제
- 미리 사용 방법을 알고 있어야 한다.
- 사용 방법을 모르면 하나하나 구현해야 해서 난이도가 올라간다.
행렬(Matrix)
일반적으로 2차원 공간을 행렬의 의미로 사용한다.
시뮬레이션 및 완전 탐색 문제에서는 2차원 공간에서의 방향 벡터가 자주 활용된다.
- 소스코드
dx = [0, -1, 0, 1]
dy = [1, 0, -1, 0]
x, y = 2, 2 # 현재 위치
for i in range(4):
nx = x + dx[i]
ny = x + dy[i]
print(nx, ny)
댓글남기기