반응형
츄르사려고 코딩하는 코집사입니다.
1. [백준 알고리즘] 백준 22113번 창영이와 버스 파이썬(Python)
1) 문제번호 : 22113번
2) 문제 출처
https://www.acmicpc.net/problem/22113
2. 문제
창영이는 매일 버스를 이용해 출퇴근을 한다.
창영이가 사는 도시에는 N개의 버스가 있고, S번 버스에서 E번 버스로 환승하기 위해서는 AS,E원이 필요하다.
창영이가 출근하기 위해 이용하는 M개의 버스가 환승하는 순서대로 주어지고, 모든 버스끼리의 환승 요금이 주어진다.
창영이가 한 번 출근하는데 지불해야하는 환승 요금의 합을 구해보자. 최초에 탑승할 때 지불하는 버스 요금은 제외한다.
3. 제약사항
4. 입력
첫째 줄에 도시에 존재하는 버스의 개수 N, 창영이가 이용하는 버스의 개수 M이 주어진다.
둘째 줄에 창영이가 이용하는 M개 버스의 번호가 순서대로 주어진다. 버스 번호는 중복되지 않는다.
셋째 줄부터 N개의 줄에 걸쳐 버스의 환승 요금에 대한 정보가 주어진다. S번째 줄의 E번째 수는 AS,E를 의미한다. AS,E는 AE,S와 다를 수 있다.
5. 출력
주어진 M개의 버스를 순서대로 환승하며 탑승했을 때 필요한 환승 요금의 총합을 출력한다.
6. 풀이
- 창영이가 이용하는 버스의 수만큼 반복을 하는데, 창영이가 이용하는 버스 번호를 2개씩 board 리스트에서 찾아내어 그 값을 cost(버스 환승 총 요금)에 더해주면 된다.
7. 소스 코드
import sys
input = sys.stdin.readline
N, M = map(int, input().split()) # 도시에 존재하는 버스의 수 N, 창영이가 이용하는 버스의 수 M
bus_number = list(map(int, input().split())) # 창영이가 이용하는 M개의 버스 번호
board = [] # 버스 환승 요금 행렬
# 버스 환승 요금 행렬 입력
for _ in range(N) :
board.append(list(map(int, input().split())))
cost = 0 # 버스 환승 총 요금
for i in range(M-1) :
cost += board[bus_number[i]-1][bus_number[i+1]-1]
print(cost)
반응형
'알고리즘 > 백준 알고리즘' 카테고리의 다른 글
[백준 알고리즘] 백준 22993번 서든어택 3 파이썬(Python) (0) | 2021.08.29 |
---|---|
[백준 알고리즘] 백준 22950번 이진수 나눗셈 파이썬(Python) (0) | 2021.08.29 |
[백준 알고리즘] 백준 11282번 한글 파이썬(Python) (0) | 2021.08.08 |
[백준 알고리즘] 백준 2010번 플러그 파이썬(Python) (0) | 2021.08.01 |
[백준 알고리즘] 백준 15649번 N과 M (1) 파이썬(Python) (0) | 2021.07.30 |
[백준 알고리즘] 백준 1871번 좋은 자동차 번호판 파이썬(Python) (0) | 2021.07.30 |
[백준 알고리즘] 백준 2535번 아시아 정보올림피아드 파이썬(Python) (0) | 2021.07.28 |
[백준 알고리즘] 백준 9085번 더하기 파이썬(Python) (0) | 2021.07.28 |
최근댓글