hoon's bLog

백준 Java & Javascript 1차원 배열 1546 본문

코딩테스트/백준

백준 Java & Javascript 1차원 배열 1546

개발한기발자 2023. 9. 15. 09:35
반응형

문제출처 : https://www.acmicpc.net/step/6

 

1차원 배열 단계

배열을 활용하여 서로 다른 값의 개수를 찾는 문제

www.acmicpc.net


드디어 1차원 배열 마지막 문제!!!

빨리 마무리하고 다음 문제 드가자!!!!!

[1546] 최댓값

<문제>

<Java 풀이>

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        int m = Integer.parseInt(br.readLine());    //입력 갯수

        StringTokenizer st = new StringTokenizer(br.readLine());

        int max = -1;
        double sum = 0;

        for (int i = 0; i < m; i++) {
            int val = Integer.parseInt(st.nextToken());

            if(val > max) max = val;
            
            sum += val;
        }
        System.out.println( ((sum/max) * 100) / m );
    }
}

크게 어려움없이 풀수 있던 문제였다.

14 line에서도 최댓값을 -1로 초기화 한 이유는,

비교대상 숫자들이 모두 양수이고, 첫번째 값을 최대값으로 받기 위함인데,

꼭 -1이 아니더라도 때에 따라 잘 생각하여 고려해주면 될 것 같다!

또한 소수점을 고려하여 double형 변수를 선언 후 연산해 주는 부분을 잘 생각 해야한다!

엇 근데 풀고나니 깨달았던건 배열을 쓰지 않았던 것!!!ㅋㅋㅋ

<Javascript 풀이>

const input = require('fs').readFileSync('/dev/stdin').toString().trim().split('\n');
const N = +input[0];
let arr = input[1].split(' ').map(v => +v);
let M = Math.max(...arr);

let result = 0;

for(let i=0; i<N; i++){
    result += arr[i]*100/M;
}

console.log((result/N).toFixed(6));

12 line : toFixed 함수를 사용하면 손쉽게 소수점을 만들 수 있다.

여기서 중요한 점은 toFixed 함수는 문자열에 사용하는 것이 아닌 숫자에 사용하여야 한다.

숫자.toFixed(원하는 소수점 자리)

언제나 새로운 정보 공유와 잘못된 정보

비판/지적/태클은 환영입니다!

도움이 되셨다면 공감♥️, 댓글 부탁드려요:)

끝.

728x90
반응형