[Python] dx dy 조건에 따른 방향 변환. 문자가 주어진 경우. 숫자 채우기
1. 2차원 배열 - 벽에 닿으면 반대 방향 전환조건에 따라 방향을 반대로 전환하기 위해서는 dxs와 dys를 다음과 같이 설정한다.dxs, dys = [0, 1, -1, 0], [1, 0, 0, -1] # 우, 하, 상, 좌 x, y가 현재 좌표라고 하면 x+dxs [i], y+dys [i]은 i가 0이면 오른쪽, 1이면 아래쪽, 2이면 위쪽, 3이면 왼쪽으로 이동한다.이때 i가 0과 3 그리고 1과 2는 서로 반대 방향을 가진다. 따라서 방향을 뒤집기 위해서는 3에서 방향 번호를 빼면 된다.예를 들어 현재 방향이 위쪽이라고 하면 위쪽은 2이므로 위쪽의 반대 방향은 3-2=1, 즉 아래쪽이 된다. def in_range(x,y): return x>=0 and x=0 and y 위 코드에서 n과 m..
2024. 11. 6.
[Python] 특정 방향으로 이동. dx dy. 방향 회전. 2차원 배열 활용. in_range 함수
1. dx, dy를 이용하기- 어떤 특정한 위치에서 숫자에 따라 한 칸 이동한다.- 0은 위쪽, 1은 오른쪽, 2는 아래쪽, 3은 왼쪽이다. num = int(input('숫자를 입력하세요: '))pos_x, pos_y = 0, 0if num == 0: pos_y += 1elif num == 1: pos_x += 1elif num == 2: pos_y -= 1else: pos_x -= 1print(f'이동한 후 위치는 {pos_x}, {pos_y}이다.') 숫자를 입력하세요: 0이동한 후 위치는 0, 1이다.숫자를 입력하세요: 1이동한 후 위치는 1, 0이다.숫자를 입력하세요: 2이동한 후 위치는 0, -1이다.숫자를 입력하세요: 3이동한 후 위치는 -1, 0이다. - 위 코드에서 ..
2024. 8. 10.
[Python] 최장 연속 부분 수열
1. 숫자가 동일한 연속 부분 수열 - 연속 부분 수열이란 어떤 수열에서 특정 구간에 속하는 수들을 모두 뽑았을 때 나오는 부분 수열이다. - 연속해서 나오는 같은 숫자를 한 묶음이라 할 때, 총 몇 개의 묶음이 나오는지 구하라. - 수열은 다음과 같다. - 수열에서 [1,1,1], [2,2], [3,3,3,3], [2] 총 4개의 묶음이 있다는 것을 알 수 있다. - 그림에서 빨간색 테두리는 새로운 묶음이 시작되는 index이다. - 따라서 새로운 묶음이 시작되는 index 개수가 답이 되는 것을 알 수 있다. - 새로운 묶음의 특징은 2가지가 있다. - 첫 번째, 직전에 나온 숫자와 다른 숫자가 나왔다. - 두 번째, index가 0일 때 시작된다. - 2가지 조건에 만족하면 개수를 증가시킨다. ar..
2023. 11. 11.