[백준/python] 2566 최댓값

joseon0thing·2023년 8월 9일
0

python

목록 보기
8/17
post-thumbnail


가독성이 좋지 않음을 느껴 다시 작성

arr1, arr2, arr3, arr4, arr5, arr6, arr7, arr8, arr9 = [],[],[],[],[],[],[],[],[]
max = 0

for i in range(9):
  row = list(map(int, input().split()))
  arr1.append(row)

for i in range(9):
  row = list(map(int, input().split()))
  arr2.append(row)

for i in range(9):
  row = list(map(int, input().split()))
  arr3.append(row)

for i in range(9):
  row = list(map(int, input().split()))
  arr4.append(row)

for i in range(9):
  row = list(map(int, input().split()))
  arr5.append(row)

for i in range(9):
  row = list(map(int, input().split()))
  arr6.append(row)

for i in range(9):
  row = list(map(int, input().split()))
  arr7.append(row)

for i in range(9):
  row = list(map(int, input().split()))
  arr8.append(row)

for i in range(9):
  row = list(map(int, input().split()))
  arr9.append(row)

for i in range(9):
  for j in range(9):
    arr

작성하다가 접근 방법이 잘못된 거 같아서 다시 작성함


#2차원 배열 선언
arr_row = 9
arr_col = 9
arr = [[0 for j in range(arr_col)] for i in range(arr_row)]
#최댓값, 최댓값 열, 최댓값 행
max = 0
max_row = 0 
max_col = 0

for i in range(9):
  row = list(map(int, input().split())) #리스트가 만들어짐
  arr[i].append(row) #2차원 배열로 들어가겠지?

for i in range(9):
  for j in range(9):
    if arr[i][j] > max : #크다면
      max = arr[i][j] #바꿈
      max_row = i
      max_col = j

print(max)
print(max_row, max_col, end=" ")

#python print는 자동 줄바꿈
#end=' '로 한 줄 출력 (공백 가짐)

첫 번째 오류

실패

원소는 입력이 되지만 최댓값, 행, 열은 원하는 대로 출력이 안됨
--> 원인을 모르겠으니 하나씩 실행시켜보자
--> arr 2차원 배열부터 출력


#2차원 배열 선언
arr_row = 9
arr_col = 9
arr = [[0 for j in range(arr_col)] for i in range(arr_row)]

for i in range(9):
  row = list(map(int, input().split())) #리스트가 만들어짐
  arr[i].append(row) #2차원 배열로 들어가겠지?

print(arr)

원소가 0이 있는 상태에서 입력한 원소 리스트가 생성됨.
--> append (추가)가 아니라 변경을 해야함.


#2차원 배열 선언
arr_row = 9
arr_col = 9
arr = [[0 for j in range(arr_col)] for i in range(arr_row)]

for i in range(9):
  row = list(map(int, input().split())) #리스트가 만들어짐
  arr[i] = row #2차원 배열로 들어가겠지?

print(arr)

2차원 배열 arr을 원소 0으로 선언한 상태에서 row로 변경함.

9줄이 생성됨.


두 번째 오류

#2차원 배열 선언
arr_row = 9
arr_col = 9
arr = [[0 for j in range(arr_col)] for i in range(arr_row)]
#최댓값, 최댓값 열, 최댓값 행
max = 0
max_row = 0 
max_col = 0

for i in range(9):
  row = list(map(int, input().split())) #리스트가 만들어짐
  arr[i] = row #2차원 배열로 들어가겠지?

for i in range(9):
  for j in range(9):
    if arr[i][j] > max : #크다면
      max = arr[i][j] #바꿈
      max_row = i
      max_col = j

print(max)
print(max_row, max_col, end=" ")

실패
행, 열이 다르게 나옴 (인덱스가 0부터 시작했기 때문에 원하는 값보다 -1 적게 나옴)
--> range 값을 1부터 시작, arr_row와 arr_col 등을 1로 시작하게 설정해보자


최종 코드

range index 오류

#2차원 배열 선언
arr_row = 9
arr_col = 9
arr = [[0 for j in range(arr_col)] for i in range(arr_row)]
#최댓값, 최댓값 열, 최댓값 행
max = 0
max_row = 0 
max_col = 0

for i in range(9):
  row = list(map(int, input().split())) #리스트가 만들어짐
  arr[i] = row #2차원 배열로 들어가겠지?

for i in range(9):
  for j in range(9):
    if arr[i][j] > max : #크다면
      max = arr[i][j] #바꿈
      max_row = i
      max_col = j

print(max)
print(max_row+1, max_col+1, end=" ")

print할 때 행, 열 값에 +1로 변경
정상출력

profile
정리.velog

0개의 댓글