구현(완전 탐색, 시뮬레이션)-알고리즘

유재우·2022년 7월 9일
0

알고리즘 공부

목록 보기
2/2

구현

  • 머릿속에 있는 알고리즘을 정확하고 빠르게 프로그램으로 작성하기
    풀이를 떠올리는 것은 쉽지만 소스코드로 옮기기 어려운 문제
  • 완전 탐색 : 모든 경우의 수를 주저없이 다 계산하는 해결 방법
  • 시뮬레이션 : 문제에서 제시한 알고리즘을 한 단계씩 차례대로 직접 수행

구현 시 조심해야할 메모리 제약 사항

  • 데이터의 개수(리스트의 길이)
    1,000 - 약 4KB
    1,000,000 - 약 4MB
    10,000,000 - 약 40MB

예제 - 상하좌우

  • 입력
첫째 줄에 공간의 크기를 나타내는 N이 주어진다(1 <= N <= 100)
둘째 줄에 여행가 A가 이동할 계획서 내용이 주어진다.(1 <= 이동횟수 <= 100)
  • 출력
첫째 줄에 여행가 A가 최종적으로 도착할 지점의 좌표(X,Y)를 공백으로 구분하여 출력한다.
  • 답안
n = int(input())
x, y = 1, 1
plans = input().split()
# L, R, U, D에 따른 이동 방향
dx = [0, 0, -1, 1]
dy = [-1, 1, 0, 0]
move_types = [L, R, U, D]
# 이동계획을 하나씩 확인
for plan in plans:
    # 이동 후 좌표 구하기
    for i in range(len(move_types)):
        if plan == move_types[i]:
        	nx = x + dx[i]
            ny = y + dy[i]
    # 공간을 벗어나는 경우 무시
    if nx < or ny < 1 or nx > n or ny > n:
        continue
    # 이동 수행
    x, y = nx, ny
print(x, y)
profile
끝없이 탐구하는 iOS 개발자 유재우입니다!

0개의 댓글