
💡1차원 배열 입력받기
arr = list(map(int, input().split()))
- 띄어쓰기 간격으로 들어오는 경우
- list(): map의 결과를 배열로 반환
- map(int, 리스트): 리스트의 모든 요소를 int로 변환
arr = []
for i in range(N):
arr.append(int(input()))
- Enter 간격으로 들어오는 경우
💡 2차원 배열 입력받기
arr = []
for i in range(N):
arr.append(list(map(int, input().split())))
- 배열의 세로길이, 즉 열의 길이를 아는 경우에만 사용 가능
2783 행렬 덧셈
A, B = [], []
N, M = map(int, input().split())
for i in range(N):
A.append(list(map(int, input().split())))
for i in range(N):
B.append(list(map(int, input().split())))
for i in range(N):
for j in range(M):
print(A[i][j] + B[i][j], end = ' ')
print()
💡 2차원 행렬의 최대값, 최소값, 합 구하기 - map 함수 이용
x = [[1,0,-30,6,5],
[3,4,7,8,1],
[3,2,6,7,1],
[-1,2,3,6,8],
[99,1,2,3,6,8]]
print(max(map(max, x))) # 최대값 99
print(min(map(min, x))) # 최소값 -30
print(min(map(max, x))) # 내부 배열의 최대 값들 중에서 가장 작은 값 6
print(max(map(min, x))) # 내부 배열의 최소 값들 중에서 가장 큰 값 1
print(sum(map(sum, x))) # 2차원 배열의 모든 값의 합
💡 리스트를 특정 조건에 맞게 출력 - join 함수 이용
# join 함수는 내부 요소들이 Str 타입일 경우만 가능!
y = [0,1,2,2,3]
print(''.join(map(str,y))) # 01223
print(','.join(map(str,y))) # 0,1,2,2,3
print('\n'.join(map(str,y)))
# 0
# 1
# 2
# 2
# 3
2566 최댓값
A = []
for i in range(9):
A.append(list(map(int, input().split())))
num = max(list(map(max, A)))
print(num)
for i in range(9):
for j in range(9):
if num == A[i][j]:
print(i+1, j+1, end= ' ')
10798 세로읽기
A = []
B = "" # 세로로 읽은 문자열 저장
for i in range(5):
A.append(list(map(str, input().strip())))
# 가장 긴 문자열의 길이
max_len = max(len(word) for word in A)
for i in range(max_len):
for j in range(5):
if i < len(A[j]):
B += A[j][i]
print(B)
- 첫 번째 입출력에 맞춰 푸니 두 번째 입출력에서 바로 막혔다. 처음부터 조건에 맞춰 풀자
- if i < len(A[j]): 현재 열(i)이 해당 행(A[j])의 길이보다 작은 경우에만 문자를 읽도록 제한 !!!
- 예를 들어, i = 4일 때, len(A[3]) = 3. 따라서 A[3][4]는 존재하지 않으므로 IndexError가 발생
2563 색종이
- 이걸 어떻게 풀지 ??? 싶었는데 쉬운 방법이 있었다.
- 1X1 픽셀로 생각하면 된다.
n = int(input())
arr = [[0] * 100 for _ in range(100)]
for _ in range(n):
a, b = map(int, input().split())
for i in range(a, a + 10):
for j in range(b, b + 10):
arr[i][j] = 1
cnt = 0
for i in range(100):
cnt += arr[i].count(1)
print(cnt)
- 도화지 크기는 100 * 100으로 고정, 검은색 색종이는 10 * 10의 크기로 고정
- 열을 돌면서 행마다 1인 값을 찾아서 개수를 세주면 됨 !!!
'알고리즘' 카테고리의 다른 글
| 💻 [백준][파이썬] 단계별로 풀어보기 - 집합과 맵(10815, 14425, 7785, 1269, 11478) (0) | 2024.12.09 |
|---|---|
| 💻 [백준][파이썬] 단계별로 풀어보기 - 정렬 모음(2750, 2587, 25305, 2751, 10989, 1427, 11650, 11651, 1181, 10814, 18870) (1) | 2024.12.05 |
| 💻 [백준-2667] python3 단지 번호 붙이기 (0) | 2024.12.02 |
| 💻 [백준 - 2606] Python3 바이러스 (2) | 2024.11.27 |
| 💻 [백준 - 1260] 파이썬 DFS와 BFS(기본 구현 자세히) (2) | 2024.11.26 |