https://www.acmicpc.net/problem/11971
11971번: 속도 위반
예를 들어 도로가 3구역 [(40km, 75km/h), (50km, 35km/h), (10km, 45km/h)] 이고. 연정이가 달린 3구역 [(40km, 76km/h), (20km, 30km/h), (40km, 40km/h)] 이라면, 처음 0 ~ 40km 영역에서 1km/h 만큼 위반했으나 60km ~ 90km 사이에
www.acmicpc.net
난이도 : 실버 5
태그 : 구현
1. 설명
도로의 길이가 100km 밖에 되지 않기 때문에,
1km씩 체크하여, 1~100km 모든 지점에서,
현재 속도를 위반했는지 체크해도 주어진 시간 안에 충분히 통과할 수 있습니다.
2. 소스코드
<cpp />
#include <stdio.h>
int main() {
int n, m;
scanf("%d %d", &n, &m);
int normalSpeed[100] = {0};
int mySpeed[100] = {0};
int lastIdx = 0;
for (int i = 0; i < n; i++) {
int length, speed;
scanf("%d %d", &length, &speed);
for (int j = lastIdx; j < lastIdx + length; j++) {
normalSpeed[j] = speed;
}
lastIdx += length;
}
lastIdx = 0;
for (int i = 0; i < m; i++) {
int length, speed;
scanf("%d %d", &length, &speed);
for (int j = lastIdx; j < lastIdx + length; j++) {
mySpeed[j] = speed;
}
lastIdx += length;
}
int max = 0;
for (int i = 0; i < 100; i++) {
int diff = mySpeed[i] - normalSpeed[i];
if (diff > max) {
max = diff;
}
}
printf("%d", max);
}
normalSpeed는 제한속도를 의미합니다.
normalSpeed[x]은 시작지점에서 x km 떨어진 지점에서의 제한속도를 의미합니다.
mySpeed는 연정이의 속도를 의미합니다.
mySpeed[x]은 시작지점에서 x km 떨어진 지점에서의 연정이의 속도를 의미합니다.
1~100까지 반복문을 돌며, 두 속도를 비교하여 가장 큰 값을 출력하면 됩니다.
'코딩테스트 > C | C++' 카테고리의 다른 글
[백준 2747번 ] [C언어] 피보나치 수 (0) | 2023.01.30 |
---|---|
[백준 16486번] [C언어] 운동장 한 바퀴 (0) | 2023.01.16 |
[백준 24389번] [C언어] 2의 보수 (0) | 2022.12.02 |
[백준 3595번] [C언어] 맥주 냉장고 (1) | 2022.12.02 |
[백준 2520번] [C언어] 팬케이크 사랑 (0) | 2022.11.29 |