song.log

[Algorithm] 백준 단계별로 풀어보기 - 5. 1차원 배열 본문

StudyLog/Algorithm

[Algorithm] 백준 단계별로 풀어보기 - 5. 1차원 배열

SingaKorean 2019. 12. 21. 02:31
반응형

2920. 음계 

다장조는 c d e f g a b C, 총 8개 음으로 이루어져있다. 이 문제에서 8개 음은 다음과 같이 숫자로 바꾸어 표현한다. c는 1로, d는 2로, ..., C를 8로 바꾼다.

1부터 8까지 차례대로 연주한다면 ascending, 8부터 1까지 차례대로 연주한다면 descending, 둘 다 아니라면 mixed 이다.

연주한 순서가 주어졌을 때, 이것이 ascending인지, descending인지, 아니면 mixed인지 판별하는 프로그램을 작성하시오.

import java.util.Scanner;

public class Main{
     public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		int scaleArr[] = new int[8];
		//입력
		for (int i = 0; i < scaleArr.length; i++) {
			scaleArr[i] = scan.nextInt();
		}
		//출력하면서 체크
		int sum = 1;
		for (int i = 0; i < scaleArr.length-1; i++) {
			if(scaleArr[i]<scaleArr[i+1]) {
				sum += 0;
			}
			else{
				sum += 1;
			}	
		}
		if(sum == 1) {
			System.out.println("ascending");
		}
		else if(sum == 8) {
			System.out.println("descending");
		}else {
			System.out.println("mixed");
		}
    }
}

 

4344. 평균은 넘겠지

대학생 새내기들의 90%는 자신이 반에서 평균은 넘는다고 생각한다. 당신은 그들에게 슬픈 진실을 알려줘야 한다.

첫째 줄에는 테스트 케이스의 개수 C가 주어진다.

둘째 줄부터 각 테스트 케이스마다 학생의 수 N(1 ≤ N ≤ 1000, N은 정수)이 첫 수로 주어지고, 이어서 N명의 점수가 주어진다. 점수는 0보다 크거나 같고, 100보다 작거나 같은 정수이다.

각 케이스마다 한 줄씩 평균을 넘는 학생들의 비율을 반올림하여 소수점 셋째 자리까지 출력한다.

import java.util.Scanner;

public class Main{
 
    public static void main(String[] args) {
     Scanner scan = new Scanner(System.in);
		int testCase = scan.nextInt();
		double resultArr[] = new double[testCase];
		for (int i = 0; i < testCase; i++) {
			int count = scan.nextInt();
			int scoreArr[] = new int[count];
			//입력
			for (int j = 0; j < scoreArr.length; j++) {
				scoreArr[j] = scan.nextInt();
			}
			
			int totalScore = 0;
			for (int j = 0; j < scoreArr.length; j++) {
				totalScore += scoreArr[j];
			}
			int avgScore = totalScore/count;
			int upper = 0;
			for (int j = 0; j < scoreArr.length; j++) {
				if(avgScore <scoreArr[j]) {
					upper +=1;
				}
			}
			resultArr[i] =(double)upper/count*100;
			
		}
		for (int i = 0; i < resultArr.length; i++) {
			System.out.printf("%.3f", resultArr[i]);
			System.out.println("%");
		}
    }
}

 

반응형
Comments