코딩테스트/백준) 단계별로 풀기

백준- 단계별로 풀어보기| 7단계- 2차원 배열

영최 2023. 4. 4. 15:01
728x90
단계 문제 번호 제목 내 코드 코드 비교
1 2738 행렬 덧셈 n, m =  map(int,input().split())

a = [ [0 for i in range(m)] for j in range(n)]
b = [ [0 for i in range(m)] for j in range(n)]
new = [ [0 for i in range(m)] for j in range(n)]
for i in range(n*2):
    li = list(map(int,input().split()))
    for j in range(m):
        if i < n:
            a[i][j] = li[j]
        else:
            b[i-n][j] = li[j]


for i in range(n):
    for j in range(m):
        new[i][j] = a[i][j] +b[i][j]
    print((' '.join(map(str,new[i]))))
import sys
input = sys.stdin.readline

n,m = map(int,input().split())
a = [list(map(int,input().split())) for _ in range(n)]
b = [list(map(int,input().split())) for _ in range(n)]

for i in range(n):
    for j in range(m):
        a[i][j] += b[i][j]

for i in a:
    print(*i)
' '.join(list) 할 때 리스트가 문자열이어야함 ->map(str,list) 사용
  2566 최댓값 max_tuple_idx = 0
max_num = 0
arr = []
for i in range(9):
    tuple = list(map(int,input().split())) 
    arr.append(tuple)
    tuple_max_num = max(tuple)
    if tuple_max_num > max_num:
        max_num = tuple_max_num
        max_tuple_idx = i 

max_column_idx =  arr[max_tuple_idx].index(max_num)
print(max_num)
print(max_tuple_idx+1, max_column_idx+1)
 
리스트가 2차원일때 max() 쓰면 첫번째 원소끼리만 비교한다.
  10798 세로읽기 a = [ list(input()) for i in range(5)]
col = max([ len(li) for li in a])

string = ''
for i in range(col):
    for j in range(len(a)):
        try:
            string += str(a[j][i])
        except:
            pass
print(string)
 
 
  2563  색종이 num = int(input())

max_num = 100
paper_max_num = 10

coord_list = []
for i in range(num):
    min_x,min_y = map(int,input().split())
    coord_list.append([min_x,max_num-1-min_y])

arr = [[0 for i in range(max_num)] for i in range(max_num)]


for coord in coord_list:
    min_x = coord[0]
    min_y = coord[1]    
    for col in range(min_y-paper_max_num+1, min_y+1):
        for row in range(min_x, min_x+paper_max_num):
            arr[col][row] =1
        
total = 0
for i in arr:
    total += sum(i)

print(total)
 
어려울때는 쪼개서 생각해보자
다른 풀이는 0부터 101까지로 배열을 만들었는데
나는 블럭단위로 생각해서 3*3 인 배열이 인덱스가 0~2까지 있듯이 0부터 99까지로 배열을 만들었다.
728x90