-
Softeer [level 2] : GBC (C 언어)softeer 문제 2023. 3. 30. 10:15
https://softeer.ai/practice/info.do?idx=1&eid=584&sw_prbl_sbms_sn=171315
Softeer
연습문제를 담을 Set을 선택해주세요. 취소 확인
softeer.ai
Code:
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081#include <stdio.h>#include <math.h>int main(){int n, m;scanf("%d %d", &n, &m);int arr[101] = { 0, };int speed[101] = { 0, };int acheck[101] = { 0, };int scheck[101] = { 0, };int max = 0;for (int i = 0; i < n; i++){scanf("%d %d", &arr[i], &speed[i]);}for (int i = 0; i < m; i++){scanf("%d %d", &acheck[i], &scheck[i]);}for (int i = 1; i < n; i++){arr[i] = arr[i - 1] + arr[i];}for (int i = 1; i < m; i++){acheck[i] = acheck[i - 1] + acheck[i];}int num1 = 0;int num2 = 0;int value = 0;while (1){value = 0;if (arr[num1] < acheck[num2]){if (speed[num1] < scheck[num2]){value = abs(speed[num1] - scheck[num2]);if (max < value){max = value;}}num1++;}else if (arr[num1] > acheck[num2]){if (speed[num1] < scheck[num2]){value = abs(speed[num1] - scheck[num2]);if (max < value){max = value;}}num2++;}else{if (speed[num1] < scheck[num2]){value = abs(speed[num1] - scheck[num2]);if (max < value){max = value;}}if (num1 == n && num2 == m){break;}else{num1++;num2++;}}}printf("%d", max);}cs 문제풀이 :
1. 구간속도와 시범운행 속도를 배열로 따로 받는다.
2. 길이를 기준으로 비교하므로 조건문으로 (1) 정해진구간 길이>시범운행 길이 (2) 정해진구간 길이<시범운행 길이 (3) 정해진구간 길이=시범운행 길이로 경우를 나누어 확인해준다.
3. max 변수를 이용해 차이가 큰 부분을 선택해준다. 이때 정해진구간 속도 < 시범운행 속도인 부분만 체크한다.
'softeer 문제' 카테고리의 다른 글
Softeer [level 3] : 택배 마스터 광우 (C 언어) (0) 2023.03.31 Softeer [level 3] : 우물 안 개구리 (C 언어) (0) 2023.03.30 Softeer [level 2] : 전광판 (C 언어) (0) 2023.03.30 Softeer [level 2] : 회의실 예약 (C 언어) (0) 2023.03.29 Softeer [levle 2] 비밀 메뉴 (C 언어) (0) 2023.03.28