핵심 포인트 2차원 배열 2차원 리스트에서의 sum 함수 제출코드 A = [[0 for _ in range(100)] for _ in range(100)] for _ in range(int(input())): x, y = map(int, input().split()) for idxx in range(x, x + 10 if x + 10 < 100 else 100): for idxy in range(y, y + 10 if y + 10 < 100 else 100): A[idxx][idxy] = 1 print(sum(sum(A, []))) 해설 먼저, 문제에서 정의한 100 x 100 크기의 비어있는 도화지를 정의해줍니다. 이를 A라고 하고 0으로 채우도록 하죠. 그리고 총 N번 반복하면서 10 x 10 크기의..
핵심 포인트 2차원 배열 리스트 pop 함수 기추 구현 능력 제출코드 A = [input() for _ in range(5)] S = [] while len(A) != 0: S.append(A[0][0]) if len(A[0]) > 1: A.append(A[0][1:]) A.pop(0) print(''.join(map(str, S))) 해설 먼저, 세로로 읽을 5개의 문자열을 하나의 리스트에 저장해놓습니다. 제가 생각한 알고리즘은 다음과 같습니다. STEP1. A의 첫번째 문자열의 첫번째 문자를 S에 저장 STEP2-1. 만약, A의 첫번째 문자열의 길이가 1보다 크다면 첫번째 문자를 제외한 문자열을 A에 append하여 마지막 요소로 추가 STEP2-2. 만약, A의 첫번재 문자열의 길이가 1보다 작다..
핵심 포인트 2차원 배열 리스트 컴프리헨션 최댓값 찾기 제출코드 A = [list(map(int, input().split())) for _ in range(9)] max_i, max_j, max_value = 1, 1, 0 for i in range(9): for j in range(9): if max_value < A[i][j]: max_value = A[i][j] max_i, max_j = i + 1, j + 1 print(max_value) print(max_i, max_j) 해설 먼저, $9 \times 9$ 크기의 2차원 배열을 입력받습니다. 다음에는 최대값의 위치 (max_i, max_j)와 최대값 (max_value)을 저장하기 위한 변수를 초기화합니다. 이때, 최대값의 위치는 1로 초기화..
핵심 포인트 2차원 배열 리스트 컴프리헨션 제출코드 N, M = map(int, input().split()) m1 = [list(map(int, input().split())) for _ in range(N)] m2 = [list(map(int, input().split())) for _ in range(N)] m3 = [[0 for _ in range(M)] for _ in range(N)] for i in range(N): for j in range(M): m3[i][j] = m1[i][j] + m2[i][j] for row in m3: print(' '.join(map(str, row))) 해설 첫번째 줄에는 두 행렬의 크기 N과 M을 입력받습니다. 다음 N개의 줄에서는 행렬 m1의 값들을 리스트..