[소프티어] 8단 변속기 (C++)

우리누리·2023년 11월 1일

👓 문제 설명


현대자동차에서는 부드럽고 빠른 변속이 가능한 8단 습식 DCT 변속기를 개발하여 N라인 고성능차에 적용하였다. 관련하여 SW 엔지니어인 당신에게 연속적으로 변속이 가능한지 점검할 수 있는 프로그램을 만들라는 임무가 내려왔다.

당신은 변속기가 1단에서 8단으로 연속적으로 변속을 한다면 ascending, 8단에서 1단으로 연속적으로 변속한다면 descending, 둘다 아니라면 mixed 라고 정의했다.

변속한 순서가 주어졌을 때 이것이 ascending인지, descending인지, 아니면 mixed인지 출력하는 프로그램을 작성하시오.


💣 제한 사항

  • 주어지는 숫자는 문제 설명에서 설명한 변속 정도이다.
  • 1부터 8까지 숫자가 한번씩 등장한다.

🚨 접근 방법

단순 구현 문제이다.
1->8까지 연속하거나 8->1까지 연속하거나 그 외의 경우이거나
총 3가지 경우의 수로 나누면 된다.


🚈 풀이

#include<iostream>

using namespace std;

int main(int argc, char** argv)
{
  string answer="";
  // 8개의 숫자 입력 받기
  int arr[8]={0,};
  for(int i=0;i<8;i++){
    cin>>arr[i];
  }
  // 1->8, 8->1, 그 외 경우 3가지로 판단
  if(arr[0]+1==arr[1]){
    answer="ascending";
    for(int i=1;i<7;i++){
      if(arr[i]+1==arr[i+1]){
        continue;
      }
      else{
        answer="mixed";
        break;
      }
    }
  }
  else{
   answer="descending";
    for(int i=1;i<7;i++){
      if(arr[i]-1==arr[i+1]){
        continue;
      }
      else{
        answer="mixed";
        break;
      }
    }
  }
  cout<<answer;
   return 0;
}

0개의 댓글