728x90
2920번 음계 (JAVA)
import java.util.Scanner;
public class Main{
public static void main(String args[]){
Scanner sc = new Scanner(System.in);
int[] a = new int[8];
for (int i=0; i<8; i++){
a[i] = sc.nextInt();
}
int[] check = new int[7];
for(int i=0; i<7; i++){
check[i] = 0;
} // [0, 0, 0, 0, 0, 0, 0]
for (int i=0; i<7; i++){
if (a[i] - a[i+1] == -1){ // ascending
check[i] = 1;
}
else if (a[i] - a[i+1] == 1){ // descending
check[i] = 2;
}
else {check[i] = 3;} // mixed
}
int sum = 0;
for(int i=0; i<7; i++){
sum += check[i];
}
if (sum == 7){System.out.println("ascending");}
else if (sum == 14){System.out.println("descending");}
else {System.out.println("mixed");}
}
}
1 ~ 8까지의 자연수 나열에서 오름차순과 내림차순의 특징은 i번째 수와 8-i번째 수의 합이 동일하다는 것이다.
이 특징을 이용한 방법은 다음과 같다.
import java.util.Scanner;
public class Main{
public static void main(String args[]){
Scanner sc = new Scanner(System.in);
int[] a = new int[8];
for (int i=0; i<8; i++){
a[i] = sc.nextInt();
}
int check = 0;
for (int i=0; i<4; i++){
if (a[i] + a[7-i] == 9 && a[i+1] - a[i] == 1){
check ++;
} else if(a[i] + a[7-i] == 9 && a[i+1] - a[i] == -1){
check --;
}
}
if(check == 4)
System.out.println("ascending");
else if(check == -4)
System.out.println("descending");
else
System.out.println("mixed");
}
}
728x90
'백준' 카테고리의 다른 글
[백준] 10816번 - 숫자 카드 2 (JAVA) (0) | 2023.02.04 |
---|---|
[백준] 큰 수 A + B (10757번 JAVA) (0) | 2023.01.10 |
[백준] -2진수 (2089번 JAVA) (0) | 2023.01.10 |
[백준] 1929번 : 소수 구하기 (0) | 2023.01.02 |
[백준] 1018번 : 체스판 다시 칠하기 [자바 / JAVA] (0) | 2023.01.01 |