현대자동차에서는 부드럽고 빠른 변속이 가능한 8단 습식 DCT 변속기를 개발하여 N라인 고성능차에 적용하였다. 관련하여 SW 엔지니어인 당신에게 연속적으로 변속이 가능한지 점검할 수 있는 프로그램을 만들라는 임무가 내려왔다.
당신은 변속기가 1단에서 8단으로 연속적으로 변속을 한다면 ascending, 8단에서 1단으로 연속적으로 변속한다면 descending, 둘다 아니라면 mixed 라고 정의했다.
변속한 순서가 주어졌을 때 이것이 ascending인지, descending인지, 아니면 mixed인지 출력하는 프로그램을 작성하시오.
주어지는 숫자는 문제 설명에서 설명한 변속 정도이며, 1부터 8까지 숫자가 한번씩 등장한다.
첫째 줄에 8개 숫자가 주어진다.
첫째 줄에 ascending, descending, mixed 중 하나를 출력한다.
- 입력
1 2 3 4 5 6 7 8- 출력
ascending
#include<iostream>
using namespace std;
int arr[8];
int main(int argc, char** argv)
{
for(int i = 0; i < 8; i++){
cin >> arr[i];
}
int ascending = 0;
int descending = 0;
for(int i = 0; i < 7; i++) {
if (arr[i] < arr[i+1]) descending = 1;
else ascending = 1;
}
if (ascending == 0 && descending == 1) {
cout << "ascending";
}
else if (ascending == 1 && descending == 0) {
cout << "descending";
}
else {
cout << "mixed";
}
return 0;
}
flag 변수를 두고 증가하는지 감소하는지 판별하는 방식으로 구현했다. 레벨2라서 그런지 매우 쉬웠다.