hye-log

[백준]2920번 음계(JAVA) 본문

CodingTest/Baekjoon

[백준]2920번 음계(JAVA)

iihye_ 2023. 8. 13. 03:06

0. 문제 링크

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. 문제 설명

1) 8개의 음의 연주 순서가 주어졌을 때, ascending, descending, mixed 출력하기

 

2. 입출력

// input1
1 2 3 4 5 6 7 8

// output1
ascending

// input2
8 7 6 5 4 3 2 1

// output2
descending

// input3
8 1 7 2 6 3 5 4

// output3
mixed

 

3. 코드

import java.io.*;
import java.util.*;

public class b2920 {

	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringTokenizer st = new StringTokenizer(br.readLine());
		int ans = 0;
		
		int prev = Integer.parseInt(st.nextToken()); // 첫 번째 음 입력
		for (int i = 1; i < 8; i++) { // 나머지 7개 음 입력 받기
			int now = Integer.parseInt(st.nextToken()); // 현재 음 임력
			if(prev < now) { // 첫 번째 음이 현재 음보다 작으면
				ans += 1; // 1 추가
			} else if(prev > now) { // 첫 번째 음이 현재 음보다 크면
				ans -= 1; // 1 감소
			}
			prev = now; // prev를 now로 고치기
		}
		 
		if(ans == 7) { // 1부터 8까지 차례로 연주해서 7이면
			System.out.println("ascending");
		} else if(ans == -7) { // 8부터 1까지 차례로 연주해서 -7이면
			System.out.println("descending");
		} else { // 7도 -7도 아니면
			System.out.println("mixed");
		}
		
	}

}

 

실행 결과

 

4. 회고

1) 문제에서 1부터 8까지 음이 한 번씩 주어진다고 했으므로, 1부터 8까지면 ascending, 8부터 1까지면 descending, 나머지 경우는 모두 mixed에 해당

- 이전에 받은 음과 현재 받은 음의 대소 비교를 통해 ans 값으로 ascending, descending을 판단

2) 출력문 오타를 주의하자...

 

5. Github

https://github.com/iihye/Algorithm/blob/main/Baekjoon/b2920.java

 

728x90

'CodingTest > Baekjoon' 카테고리의 다른 글

[백준]8958번 OX퀴즈(JAVA)  (0) 2023.08.13
[백준]3052번 나머지(JAVA)  (0) 2023.08.13
[백준]11720번 숫자의 합(JAVA)  (0) 2023.08.13
[백준]2675번 문자열 반복(JAVA)  (0) 2023.08.13
[백준]2439번 별 찍기 - 2(JAVA)  (0) 2023.08.13
Comments