문제 요약
현대자동차에서는 부드럽고 빠른 변속이 가능한 8단 습식 DCT 변속기를 개발하여 N라인 고성능차에 적용하였다. 관련하여 SW 엔지니어인 당신에게 연속적으로 변속이 가능한지 점검할 수 있는 프로그램을 만들라는 임무가 내려왔다.
당신은 변속기가 1단에서 8단으로 연속적으로 변속을 한다면 ascending, 8단에서 1단으로 연속적으로 변속한다면 descending, 둘 다 아니라면 mixed라고 정의했다.
변속한 순서가 주어졌을 때 이것이 ascending인지, descending인지, 아니면 mixed인지 출력하는 프로그램을 작성하시오.
문제 분석
오름차순과 내림차순의 기준을 구한 후 순차적으로 확인한다.
코드
import java.util.*;
import java.io.*;
public class Main
{
public static void main(String args[]) throws IOException
{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String[] input = br.readLine().split(" ");
int[] arr = Arrays.stream(input).mapToInt(s -> Integer.parseInt(s)).toArray();
System.out.println(check(arr));
}
public static String check(int[] arr){
boolean std = true;
if(arr[0] + 1 == arr[1]){
// 오름차순
std = true;
}
else if(arr[1] + 1 == arr[0]){
// 내림차순
std = false;
}
else{
return "mixed";
}
for(int i = 2; i < arr.length; i++){
//오름차순일때
if(std == true && arr[i] != arr[i-1]+1){
return "mixed";
}
// 내림차순일때
if(std == false && arr[i] != arr[i-1]-1){
return "mixed";
}
}
return std? "ascending":"descending";
}
}
정리
새로 배운 내용
없음
개선할 점
boolean변수로 오름차순과 내림차순을 만들고 아래 확인하는 작업을 하나로 합치면 좀 더 간결할것같다.
더 찾아볼만한 사항
없
'알고리즘 풀이 > 소프티어' 카테고리의 다른 글
[level 2] [21년 재직자 대회 예선] 비밀 메뉴 (JAVA) (0) | 2023.05.10 |
---|---|
[level 2] 지도 자동 구축 (JAVA) (0) | 2023.05.10 |
[level 2] 장애물 인식 프로그램 (JAVA) (0) | 2023.05.10 |
[level 2] 바이러스 (JAVA) (0) | 2023.05.10 |
[level 2] 금고털이 (JAVA) (0) | 2023.05.10 |