Programming/Algorithm
[구현 알고리즘] 시뮬레이션과 완전 탐색
Mandy's
2024. 2. 5. 18:37
해당 내용은 아래의 유투브를 보고 참고했음을 밝힙니다~
https://youtu.be/2zjoKjt97vQ?si=fGChNeo644FV1sFd
구현 (Implementation)
- 구현이란, 머릿속에 있는 알고리즘을 소스코드로 바꾸는 과정
- 아무리 알고리즘을 잘 세워도 그것을 코드로 만들지 않으면 동작하지 않음.
- 결국엔 모든 문제가 구현이지만, 특정 문제를 구현이라고 부르는 경우가 있음.
- 흔히 알고리즘 대회에서 구현 유형의 문제란?
- 풀이를 떠올리는 것은 쉽지만 소스코드로 옮기기 어려운 문제
- 예시
- 알고리즘은 간단한데 코드가 지나칠만큼 길어짐
- 실수 연산을 다루고, 특정 소수점 자리까지 출력하는 문제
- 문자열을 특정한 기준에서 따라서 끊어 처리해야 하는 문제
- 적절한 라이브러리를 찾아서 사용해야 하는 문제
- ex) 모든 순열과 모든 조합을 찾는 문제, python - iter~ 라이브러리 사용
- 많은 코드와 연습이 필요로 함.
- dx = [0, -1, 0, 1]
- dy = [1, 0, -1, 0]
- x, y = 2, 2일 때
- for i in range(4):
- nx = 2 + dx[0] = 2 + 0 = 2
- ny = 2 + dy[0] = 2 + 1 = 3
- (2, 3) 오른쪽으로 한 칸 이동: 동
- nx = 2 + d[1] = 2 - 1 = 1
- ny = 3 + d[1] = 3
- (1, 3) 위로 한 칸 이동: 북
- nx = 1 + dx[2] = 1 + 0 = 1
- ny = 3 + dy[2] = 3 - 1 = 2
- (1, 2) 왼쪽으로 한 칸 이동: 서
- nx = 1 + d[3] = 1 + 1 = 2
- ny = 2 + d[3] = 2
- (2, 2) 아래, 원위치 : 남