Notice
Recent Posts
Recent Comments
Link
수리 공작소
[22113번] 창영이와 버스 본문
문제 요약 :
전체 버스 N개가 있고, 그 중 창영이가 이용할 버스가 M개 입력으로 주어진다.
이 버스를 순서대로 탈 때, 들어가는 총 환승 비용으로 계산하는 문제이다.
(전체 버스 간의 환승비용은 이차원 배열로 입력받는다.)
#include <iostream>
using namespace std;
int main() {
int allBus = 0, useBus = 0, fee = 0;; // 모든 버스의 수, 창영이가 사용할 버스의 수, 총 환승 요금
cin >> allBus >> useBus;
if (allBus < 2 || allBus > 100 || useBus > allBus || useBus < 1) return 0; //조건 필터링
int* listUseBus = new int[useBus]; // 창영이가 사용할 버스 동적 할당
for (int i = 0; i < useBus; i++) {
cin >> listUseBus[i];
}
int** listAllBus = new int*[allBus]; //모든 버스에 대한 환승 요금을 가진 2차원 배열
for (int i = 0; i < allBus; i++) {
listAllBus[i] = new int[allBus];
for (int j = 0; j < allBus; j++) {
cin >> listAllBus[i][j];
}
}
for (int i = 0; i < useBus - 1; i++) {
fee += listAllBus[listUseBus[i]-1][listUseBus[i + 1]-1];
// listAllBus에서 listUseBus 인덱스(버스) 간의 이동시에 발생하는 환승요금을 찾아서 fee에 더한다.
}
cout << fee;
for (int i = 0; i < allBus; i++) {
delete[] listAllBus[i];
}
delete[] listAllBus;
return 0;
}
어렵지 않은 문제였다.
다만, 항상 그렇지만 변수명을 설정하는 것이 참 어렵다. 보다 더 직관적으로 짜는 방법을 터득해야겠다! 그러려면 다른 사람들의 코드를 많이 봐야할 것 같다.
'Algorithm > 백준 문제풀이' 카테고리의 다른 글
[6318번] Box of Bricks (1) | 2023.01.04 |
---|