본문 바로가기

2차원 배열4

[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.
2차원 배열 활용 2 Q) 대각선으로 숫자 채우기 - 자연수 n, m 입력 - n*m 크기의 배열에 숫자를 1부터 1씩 증가시켜 대각선 방향으로 숫자를 채우기 결과 >> 3 4 1 2 4 7 3 5 8 10 6 9 11 12 n,m=map(int,input().split()) arr=[[0 for _ in range(m)] for _ in range(n)] num=1 for i in range(m): j=0 while True: arr[j][i]=num num+=1 j+=1 i-=1 if im-1 or jn-1: break for i in range(1,n): j=m-1 while True: arr[i][j]=num num+=1 i+=1 j-=1 if in-1 or jm-1: break for i in arr: for j i.. 2022. 11. 3.
2차원 배열 1. 2차원 배열 입력 - n개의 줄에 걸쳐 각 n개의 숫자를 공백을 사이에 두고 입력. - 행 단위로 합을 구할 때 n=int(input()) for _ in range(n): arr=list(map(int,input().split())) print(sum(arr)) 결과 >> 4 >> 1 2 3 4 10 >> 5 6 7 8 26 >> 9 10 11 12 42 >> 13 14 15 16 58 - 위와 같은 방법으로는 행 단위로 합을 구할 수 있지만 열 단위로 합을 구하는 것은 불가능. - 열 단위의 합을 구하기 위해서 2차원 배열을 사용 [[1,2,3,4], [5,6,7,8], [9,10,11,12], [13,14,15,16]] - 각 원소는 행을 의미 n=int(input()) arr2=[] for .. 2022. 10. 26.