-
[2920] 음계 - Java알고리즘 연습 2021. 11. 4. 23:30
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
1. 배운점
- 간단하게 생각하면 하나의 변수를 가지고도 문제의 조건에 맞게 결과를 구분할 수 있다.
2. 개선할 점
3. 궁금한 점
- 일부만 비교하더라도 음계를 구분할 수 있는 방법은 없을까?
import java.util.Scanner; public class N_2920_음계 { // 음계 static 배열 생성 static int [] noteArr = new int [] {1,2,3,4,5,6,7,8}; public static void main(String[] args) { // import java.util.Scanner Scanner scan = new Scanner(System.in); // for문으로 입력받아 배열에 저장하기 int [] compareArr = new int [8]; for (int i = 0; i < compareArr.length; i++) { compareArr[i] = scan.nextInt(); } // for문으로 연주 판별하기 (count)활용 String result = null; int count = 0; for (int i = 0; i < compareArr.length; i++) { // ascending이라면 한 자릿수가 일치할 때마다 1씩 더해준다. if (noteArr[i] == compareArr[i]) { count++; } // descending이라면 한 자릿수가 일치할 때마다 1씩 빼준다. else if (noteArr[noteArr.length - i - 1] == compareArr[i]) { count--; } } // 결과 출력 if (count == 8) System.out.println("ascending"); else if (count == -8) System.out.println("descending"); else System.out.println("mixed"); } }
'알고리즘 연습' 카테고리의 다른 글
[1152번] 단어의 개수 (0) 2021.11.05 [11720] 숫자의 합 - Java (0) 2021.11.04 [11654] 아스키코드 - Java (0) 2021.11.04 [1110] 더하기 사이클 - Java (0) 2021.11.04 [10871] X보다 작은 수 - Java (0) 2021.11.03