본문 바로가기

Python/파이썬 문법 Tips24

[ 파이썬(Python) ] 2차원 행렬에서 세로(column) 열만 추출하기 📍 2차원 행렬에서 세로(column) 열만 추출하기 1부터 25까지 순서대로 있는 5 * 5행렬에서 세로 (열(column))만 추출하는 방법을 알아보자. 총 3가지 방법으로 2중 반복문, lambda, zip함수를 사용했다. (더 좋은 방법이 있으면 댓글로 알려주세요!!) 결과는 모두 동일하다. # 1 ~ 25까지 배열 만들기 arr = [[0] * 5 for _ in range(5)] cnt = 0 for i in range(5): for j in range(5): cnt += 1 arr[i][j] = cnt # 2중 반복문 result = [[arr[j][i] for j in range(5)] for i in range(5)] # lambda 함수 result = [list(map(lambda x.. 2021. 5. 28.
[ 파이썬(Python) ] 여러 줄의 입력을 한 줄로 출력 하고 싶을 때 📍 여러 줄의 입력을 한 줄로 출력하고 싶을 때 아래 보기와 같은 입력일때 1줄로 출력하려면 어떻게 할까? 리스트끼리는 덧셈이 가능한데, 1차원 리스트 + 1차원 리스트 = 1차원 리스트가 된다. ''' 5 10 7 16 2 4 22 8 17 13 3 18 1 6 25 12 19 23 14 21 11 24 9 20 15 ''' n = 5 num = [] for _ in range(n): num += list(map(int, input().split())) print(num) 👉🏽 [5, 10, 7, 16, 2, 4, 22, 8, 17, 13, 3, 18, 1, 6, 25, 12, 19, 23, 14, 21, 11, 24, 9, 20, 15] 2021. 5. 28.
[ 파이썬(Python) ] 2차원 행렬에서 세로로 최대값, 최소값 갱신하기 📍 2차원 행렬에서 세로로 최댓값, 최솟값 갱신하기 세로 R, 가로 S인 2차원 행렬에서 세로로 최대값과 최솟값을 갱신할 때 어떻게 할까? 예를 들어 다음과 같은 2차원 행렬이 있다고 가정해보자. ''' R, S = 10, 4 x... xx.. .xx. ..xx ...x .... #... ##.. .##. ..## ...# ''' 여기서 x일 때 각 세로축에서의 최대값, #일 때 각 세로축에서의 최소값을 구하려면 다음과 같이 구할 수 있다. 다음과 같이 가로길이만큼 빈 리스트를 선언해준 다음 현재 좌표가 x 일 때 해당하는 열을 빈리스트의 index로 사용한다. 이때 비교해야하는 값은 i(row)다. 높이는 row값이기 때문이다. min값도 마찬가지로 해당하는 열을 index로 사용하고 그때의 row값을.. 2021. 5. 27.
[ 파이썬(python) ] 범위가 큰 2차원 배열 / 문자열을 출력 할 때 📍 범위가 큰 2차원 배열 / 문자열을 출력할 때 범위가 3,000 x 3,000까지 커질때 print()를 사용하면 문자열을 출력하는데 시간이 많이 걸린다. 그럴 때는 print 대신 sys.stdout.write(str)을 사용하자. 시간이 훨씬 단축되는것을 알 수 있다. print(sys.stdout.write('string')을 사용하면 뒤에 이상한 숫자가 붙으므로 print()를 떼고 sys.stdout.write(str)만 사용하자. 파이썬으로 boj_10703 유성문제를 풀면 왜 stdout를 써야하는지 알 수 있다. n = 3000 arr = [[0] * n for _ in range(n)] import sys for i in range(n): for j in range(n): sys.st.. 2021. 5. 27.
[ 파이썬(python) ] n * n 행렬에서 target * target 크기만큼 자르기 📍 n * n 행렬에서 target * target 크기만큼 자르기 가로세로가 동일한 n*n 행렬에서 n보다 작은 target*target 행렬만큼 잘라 출력하고 싶을 때는 다음과 같이 작성하자. 예를 들어, n = 5, target = 3일때는 다음과 같은 과정을 거친다. arr행렬을 초기화해준다. 출력 값이 제대로 나오는지 확인하기 위해 arr은 1부터 차례대로 증가하는 행렬로 초기화한다. 범위를 n으로 하는 이중 반복문을 선언한다. 이때 index오류를 방지하기 위해 n을 target-1로 빼준다. -1을 빼주지 않으면 제일 마지막 행과 열은 계산하지 않으니까 꼭 빼주도록 하자. 이중 반복문안에 이중 반복문을 한번 더 선언한다. 가독성을 위해 each_case라는 함수를 선언했는데, 중요한 점은 출.. 2021. 5. 20.