문제
https://softeer.ai/practice/6283
풀이(4분)
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
int[] arr = new int[8];// 1~8까지의 숫자를 저장할 배열
for(int i = 0; i < 8; i++){
arr[i] = Integer.parseInt(st.nextToken()); // 입력값 저장
}
char c;
if(arr[0] == 8){ // 시작이 8이라면
c = 'd'; // 기본을 descending로
}else if(arr[0] == 1){ // 시작이 1이라면
c = 'a'; // 기본을 ascending로
}else{ // 시작이 8 또는 1이 아니라면 반드시 "mixed" 출력하고 끝
System.out.println("mixed");
return;
}
for(int i = 1; i < 8; i++){
if(c == 'd'){ // 기조가 무엇인지
if(arr[i] + 1 != arr[i-1]){ // 이전 값과 비교
System.out.println("mixed");
return;
}
continue;
}
if(c == 'a'){ // 기조가 무엇인지
if(arr[i] - 1 != arr[i-1]){ // 이전 값과 비교
System.out.println("mixed");
return;
}
}
}
if(c == 'd'){ // 여기까지 왔고, d라면 descending 출력
System.out.println("descending");
return;
}
System.out.println("ascending"); // 여기까지 왔다면 ascending 출력
}
}
문제 풀이 전략
초기 시작 값을 1 또는 8 중 무엇인지 정한다.
1이라면 ascending를 8이라면 ascending를 기본 기조로 잡는다.
초기 시작값이 1 또는 8이 아니라면 반드시 mixed 변속이다.
인덱스 1부터 끝까지 비교를 해나가면서 기조에 맞는 변화가 아니라면 mixed를 출력하고 종료한다.
중간에 종료되지 않았다면 기조에 따른 출력을 한다.
'문제 풀이 > 소프티어' 카테고리의 다른 글
[소프티어] 징검다리(JAVA) (0) | 2025.03.13 |
---|---|
[소프티어] 바이러스(JAVA) (0) | 2025.03.12 |
[소프티어] 금고털이(JAVA) (0) | 2025.03.11 |
[소프티어] 성적 평균(JAVA) (0) | 2025.03.11 |
[소프티어] 나무 공격(JAVA) (0) | 2025.02.16 |