Super Kawaii Cute Cat Kaoani [코테준비] 파이썬 입력받기

기타/백준 문제풀이

[코테준비] 파이썬 입력받기

치킨고양이짱아 2025. 3. 10. 00:37
728x90
728x90
5
0 0 1 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
6
0 0 0 0 0 0
0 1 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0

 

이런식으로 n, nxn의 입력이 들어올 때 파이썬에서는 다음과 같이 입력을 받을 수 있다. 

n = int(input())

먼저 input()으로 받으면 string 형태로 들어오게 되므로 int로 형변환을 해주어야한다. 

그리고 nxn의 입력을 받아받아 [[0, 0, 1, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0]]과 같이 저장해주어야하는데 방식이 조금 어색했다. 

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

map을 통해 띄어쓰기 단위로 split된 입력을 int형으로 형변환을 해주고 이를 list에 저장한다. 이러면 행마다의 list가 만들어지게 되는데 이를 다시 []로 감싸줘 graph를 최종적으로 저장한다. 

그리고 동적계획법 dp를 사용하기 위해 방문한 곳인지 방문하지 않은 곳인지를 표시하는 3차원 배열을 선언했어야했다. 즉, shape가 (n, n, 3)인 dp list를 선언해야하고 안의 값을 모두 -1로 초기화했어야했다.

이를 위해선 다음과 같이 코드를 짜면 된다. 

dp = [[[-1, -1, -1] for _ in range(n)] for _ in range(n)]

또는 [-1]* 3을 하면 [-1, -1, -1]이 되기 때문에

dp = [[[-1] * 3 for _ in range(n)] for _ in range(n)]

위의 방식도 가능하다. 

728x90
728x90

'기타 > 백준 문제풀이' 카테고리의 다른 글

백준 16637번 문제 풀이(python)  (0) 2025.02.03