숫자의 합 구하기/평균 구하기

개굴이·2023년 9월 11일
0

코딩테스트

목록 보기
12/58
post-thumbnail

백준 11720번

N개의 숫자가 공백 없이 써 있다. 이 숫자를 모두 합해 출력하는 프로그램을 작성하시오.

조건)
1번째 줄에 숫자의 개수 N(1 < N < 100), 2번째 줄에 숫자 N개가 공백 없이 주어진다.
입력으로 주어진 숫자 N개의 합을 출력한다.

import java.util.*;
public class Main { 
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
        int num = scanner.nextInt();
        String input = scanner.next();
        char nums [] = input.toCharArray();
        int result = 0;
        for(char c : nums)
        	result += c - '0';
        System.out.print(result);
    }
}

백준 1546번

세준이는 기말고사를 망쳤다. 그래서 점수를 조작해 집에 가져가기로 결심했다. 일단 세준이는 자기 점수 중 최댓값을 골랐다. 그런 다음 최댓값을 M이라 할 때 모든 점수를 점수/M*100으로 고쳤다. 예를 들어 세준이의 최고점이 70점, 수학 점수가 50점이라면 수학 점수는 50/70*100이므로 71.43점이다. 세준이의 성적을 이 방법으로 계산했을 때 새로운 평균을 구하는 프로그램을 작성하시오.

조건)
1번째 줄에 시험을 본 과목의 개수 N이 주어진다. 해당 값은 1,000보다 작거나 같다. 2번째 줄에 세준이의 현재 성적이 주어진다. 해당 값은 100보다 작거나 같은, 음이 아닌 정수이고, 적어도 1 개의 값은 0보다크다.
1번째 줄에 새로운 평균을 출력한다. 실제 정답과 출력값의 절대 오차 또는 상대 오차가 10-2 이하이면 정답이다.

import java.util.*;

public class Main {

	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		
		int num = scanner.nextInt();
		int[] score = new int[num];
		
		int max = 0;
		for(int i = 0; i < num; i++) {
			int input = scanner.nextInt();
			score[i] = input;
			
			if(input > max)
				max = input;
		}
		
		float[] newScore = new float[num];
		float sum = 0;
		for(int i = 0; i < num; i++) {
			newScore[i] = (float)score[i] / max * 100;
			sum += newScore[i];
		}
		
		float avg = sum / num;
		System.out.print(avg);
	}

}

0개의 댓글