본문 바로가기

배열3

[Python] 배열에 기록하여 문제 풀기 배열의 적절한 위치에 원하는 값을 기록하여 문제를 해결한다. 1. 시간과 위치 - A와 B가 1초에 1m씩 움직인다. - A는 5초 동안 앞으로 갔다가 4초 동안 뒤로 가고 3초 동안 앞으로 간다. - B는 3초 동안 뒤로 갔다가 7초 동안 앞으로 가고 2초 동안 뒤로 간다. - A와 B가 만나게 되는 지점은 몇 초일까? - A와 B가 만나기 위해서는 시간과 위치가 같아지는 시점이 생겨야 한다. - 위치만 표시하게 되면 A와 B가 언제 만나는지 알기 쉽지 않다. - 다른 방법으로는 1초 단위로 A와 B의 위치를 동시에 움직이며 시뮬레이션을 한다. - 하지만 시간에 따라 어느 방향으로 이동하는 것을 판단해야 하므로 쉽지 않다. - 따라서 A, B를 개별적으로 1초 단위로 어느 위치에 있는지 배열에 기록하며.. 2023. 12. 18.
2차원 배열 활용 1. 0으로 초기화된 2차원 배열 생성 - list comprehension 이용해서 n*m 크기의 배열 생성 n,m=map(int,input().split()) arr=[[0 for _ in range(m)] for _ in range(n)] print(arr) 결과 >> 3 4 [[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]] 2. 2차원 배열 출력 - 중첩 반복문을 활용하여 range를 사용 arr=[[1,2,3,4], [5,6,7,8], [9,10,11,12]] for i in range(3): for j in range(4): print(arr[i][j],end=' ') print() 결과 1 2 3 4 5 6 7 8 9 10 11 12 - range 없이 리스트 내 .. 2022. 10. 28.
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.