1. 문제
헉 ,, 싶지만 원소 하나하나 탐색하면서 풀어본다 .. !
그런데 2차원 리스트 입력받는 법이 뭐더라 ?
2. 배경지식
[2차원 리스트]
2차원 리스트는 리스트 속에 리스트가 들어있다고 생각하면 된다.
도식화 해보면 1차원 리스트가 줄이라면 2차원 리스트는 표(1열 표,1행 표 제외)이다.
1차원 리스트
list_1d=[0,1,2,3,4,5,6,7]
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
2차원 리스트(3행 5열)
list_2d =[[0,1,2,3,4],[a,b,c,d,e],[ㄱ,ㄴ,ㄷ,ㄹ,ㅁ]]
0 | 1 | 2 | 3 | 4 |
a | b | c | d | e |
ㄱ | ㄴ | ㄷ | ㄹ | ㅁ |
2차원 리스트 생성(초기화)
mylist=[[0,1,2],[0,1,2],[0,1,2]]
mylist=[[0,1,2,] for i in range(3)]
mylist=[[0,1,2]]*3
mylist=[[i,j]for i in range(2) for j in range(3)]
2차원 리스트는 여러가지 방식으로 생성 및 초기화가 가능하다.
마지막줄은 다음 포스팅을 참조하였다.
2차원 리스트 입력 받기
백준에서 2차원 리스트 입력받는 문제가 많이 나오는데 (아직 얼마 못봤지만) 첫째줄에 리스트의 행, 열이 주어지고 둘째줄부터 데이터가 주어지는 경우가 많았다 !
그래서
2 4 : 2차원 리스트의 행과 열
0 0 0 1 : 행렬의 데이터가 주어짐
0 1 0 0
과 같은 자료를 입력받기 위해
n,m = map(int,input().split())
#1. 원소 하나씩 입력받기
mylist=[for _ in range(n)]
for i in range(n):
mylist[i]=list(map(int,input().split()))
#2. 원소에 list 추가하기
mylist=[]
for i in range(n):
mylist.append(list(map(int,input().split())))
#3. 선언과 동시에 입력받기
mylist=[list(map(int,input().split()))for _ in range(n)]
대표적인 3가지 방법이 있다 !
#1번이 처음에 이해가 잘 안갔다. 그래서 설명해보자면 1차원 리스트(mylist)를 생성한 뒤 행의 개수(n)만큼 빈칸을 채운다.
이제 for문을 통해 한줄씩 n번 받아서 mylist에 입력되어 있는 값을 채운다는 것이었다 !
#2번은 비어있는 mylist에 for문을 통해 한줄씩 n번 입력받은 값을 mylist에 추가한다. (append()함수 이용)
#3번은 #1,#2번 내용인 선언,초기화,입력,추가를 축약한 방법이다.
배열에 대한 더 구체적이고 자세한 설명이 있다 !
3. 구현방안
* 구현 방안은 문제를 코드로 해결하기 전, 필자의 생각을 담은 기록용 공간이다. (=스킵해!!)
- 우선 2차원 리스트를 입력받는다.
- 탐색을 통해 원하는 위치의 데이터를 찾는다.
-max초기 값을 0으로 설정해놓고 원소 하나하나 비교해간다.
: 이 부분 구현방법 떠올리고 실행하는게 제일 힘들었다. 열을 한칸씩 옮기고 행도 한칸씩 옮겨야했다!
4. 구현 코드
max_num=0
col=0
row=0
for i in range(9):
line = list(map(int,input().split()))
if max(line)>max_num:
max_num=max(line)
col=i
row=line.index(max_num)
print(max_num)
print(col+1,row+1)
5. 오답 및 풀이
max_num=0
col=0
row=0
for i in range(9):
line = list(map(int,input().split()))
if max(line)>max_num:
max_num=max(line)
col=i+1
row=line.index(max_num)+1
print(max_num)
print(col,row)
처음 짠 코드다. 여기서 계속 '틀렸습니다' , '런타임 에러'가 떴는데 아마 for문 안에 +1이 있어서 그런것 같다 ..!
재제출해서 맞은 코드처럼 +1을 밖으로 빼버리니 해결되었다.
'[알고리즘] > BOJ' 카테고리의 다른 글
[백준/python] 11286번 절댓값 힙 (0) | 2023.02.02 |
---|---|
[백준/Python] 2753 윤년 (0) | 2022.09.05 |
[백준/Python] 10171 고양이 ♥ (0) | 2022.08.23 |
[백준/Python] 11179 2진수 뒤집기/파이썬 이진수 표기 (0) | 2022.08.02 |
[백준/Python] 13410 거꾸로 구구단/[파이썬]문자열 반대로 출력 (0) | 2022.08.02 |