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
🗒 풀이
java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int[] arr = new int[8];
for (int i = 0; i < arr.length; i++) {
arr[i] = sc.nextInt();
}
sc.close();
String result = "";
for (int i = 0; i < arr.length - 1; i++) {
if (arr[i] == arr[i + 1] - 1) {
result = "ascending";
} else if (arr[i] == arr[i + 1] + 1) {
result = "descending";
} else {
result = "mixed";
break;
}
}
System.out.println(result);
}
}
- 8개의 음계를 저장할 배열을 생성한 후, 입력되는 값들을 하나씩 저장
- 결과값을 출력할 result 문자열 생성 후, for문을 통해 배열 탐색
- 각 배열을 돌면서 현재 인덱스 값과 다음 인덱스 값을 비교하면서 오름차순인지, 내림차순인지, 혼합인지 판단
- 혼합이 확인된 경우, 나머지 인덱스들은 볼 것도 없이 그냥 혼합 형태이므로, break로 빠져나가 준다
python
arr = list(map(int, input().split()))
if arr == sorted(arr):
print('ascending')
elif arr == sorted(arr, reverse=True):
print('descending')
else:
print('mixed')
- 리스트를 정렬해주는 sorted() 함수를 사용하며, 이때 reverse=True로 하면 역순, 즉 내림차순 정렬이 된다
'알고리즘' 카테고리의 다른 글
[백준] 8958번: OX퀴즈 (java, python) (0) | 2022.07.11 |
---|---|
[백준] 3052번: 나머지(java, python) (0) | 2022.07.11 |
[백준] 2908번: 상수(java, python) (0) | 2022.07.11 |
[백준] 2753번: 윤년 (java, python) (0) | 2022.07.08 |
[백준] 2742번: 기찍 N (java, python) (0) | 2022.07.07 |