https://www.acmicpc.net/problem/2920
2920번: 음계
다장조는 c d e f g a b C, 총 8개 음으로 이루어져있다. 이 문제에서 8개 음은 다음과 같이 숫자로 바꾸어 표현한다. c는 1로, d는 2로, ..., C를 8로 바꾼다. 1부터 8까지 차례대로 연주한다면 ascending, 8
www.acmicpc.net
첫번째 풀이(오름차순, 내림차순 배열 사용X)
- 정답인 배열을 생성하고 맞으면 출력하는 방식
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
int[] ascending = new int[] {1,2,3,4,5,6,7,8};
Boolean Isascending = true;
int[] descending = new int[] {8,7,6,5,4,3,2,1};
Boolean Isdescending = true;
Scanner sc = new Scanner(System.in);
int[] list = new int[8];
for(int i = 0; i<list.length; i++) {
list[i] = sc.nextInt();
}
for(int i=0;i<list.length;i++) {
if(list[i] != ascending[i]) {
Isascending = false;
break;
}
}
for(int i=0;i<list.length;i++) {
if(list[i] != descending[i]) {
Isdescending = false;
break;
}
}
if(Isascending) {
System.out.println("ascending");
}else if(Isdescending) {
System.out.println("descending");
}else {
System.out.println("mixed");
}
}
}
두번째 풀이(오름차순, 내림차순 배열 사용O)
- 배열이 오름차순인지 내림차순인지 확인하는 알고리즘
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Boolean Isascending = true;
Boolean Isdescending = true;
Scanner sc = new Scanner(System.in);
int[] list = new int[8];
for(int i = 0; i<list.length; i++) {
list[i] = sc.nextInt();
}
for(int i=1;i<list.length;i++) {
if(list[i-1]<list[i]) {
Isdescending = false;
} else if (list[i-1]>list[i]) {
Isascending = false;
}
}
if(Isascending) {
System.out.println("ascending");
}else if(Isdescending) {
System.out.println("descending");
}else {
System.out.println("mixed");
}
}
}