Algorithm

[Algorithm] 14강 : 구현 유형 개요

반응형

구현 유형의 문제란?

-풀이를 떠올리는 것은 쉽지만 소스코드로 옮기기 어려운 문제

 

 

구현 유형의 예시

- 알고리즘은 간단한데 코드가 길어지는 문제

- 실수 연산을 다루고, 특정 소수점 자리까지 출력해야 하는 문제

- 문자열을 특정한 기준에 따라서 끊어 처리해야 하는 문제

- 적절한 라이브러리를 찾아서 사용해야 하는 문제

 

 

구현예시)

 

일반적으로 알고리즘 문제에서 2차원 공간은 행렬의 의미로 사용

for i in range(5):
	for j in range(5):
    	print('(',i,',',j,')',end=' ')
    print()

 

 

 

시뮬레이션 및 완전 탐색 문제

시뮬레이션 및 완전 탐색 문제에서는 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 = y + dy[i]
    print(nx, ny)

이런 로직으로 동서남북으로 움직이게 된다.

 

 

 

<문제> 상하좌우 

 

 

위와 같은 문제가 있다. 이 문제를 해결하는 방법을 찾아보자

이 문제는 요구사항만 구현하면 된다.

 

# N 입력
n = int(input())
x, y = 1, 1

# 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 <1 or ny < 1 or nx > n or ny >n;
        	continue
        # 이동 수행
        x , y = nx, ny
print(x, y)

이 자료는 동빈 나 님의 이코 테 유튜브 영상을 보고 정리한 자료입니다.

참고 : www.youtube.com/watch?v=m-9pAwq1o3w&list=PLRx0vPvlEmdAghTr5mXQxGpHjWqSz0dgC




반응형