[D+72]20220220

ga_ding·2022년 2월 20일
0

TIL

목록 보기
22/55

4344번
이 문제를 풀기 전 배열에서 삭제하는 메소드를 알아봤는데 '.pop()'은 배열의 맨 끝에 값을 제거하는 것, '.shift()'은 배열의 맨 앞에 값을 제거하는 것이다.
그리고 소수점 구하는 코드는 몇가지 있는데 난 '.tofxed(n)'를 사용했다.

let fs = require('fs');
let input = fs.readFileSync('/dev/stdin').toString().split('\n');

let count = Number(input[0]);
let answer = '';

for (let i = 1; i <= count; i++) {
    input[i] = input[i].split(" ");
    student = input[i][0];
    input[i].shift();
    
    sum=0
    for (let j = 0; j <input[i].length; j++) {
        sum += Number(input[i][j]);
    }
    average= sum/student;

    num=0
    for (let j = 0; j <input[i].length; j++) {
        if (input[i][j] > average) {
            num++;
        }
    }
    percentage = ((num / student) * 100).toFixed(3);
    answer += `${percentage}% \n`;
}
console.log(answer);

어려웠당..
1. 테스트 개수로 반복문 사용하여 케이스 첫번째 수 빼기 'shift()'
2. 평균값 구하기
3. 평균 보다 높은 학생 수 구하기
4. 퍼센트 계산해서 소수점 3자리 수 빼기 '.toFixed(n)'

장난스러운 문제 해설에 속아 쉬울줄알고 성급하게 선택한 나자신 ..ㅎ

2577번

let input = require('fs').readFileSync('/dev/stdin').toString().split('\n');

let num = String(input[0] * input[1] * input[2]);

for (let i = 0; i <= 9; i++) { 
   console.log(num.split(i + '').length - 1);    
}

이 문제는 도움을 많이 받은 문제이다. 일단 곱한 수(num)을 string을 이용하여 문자열로 만드는 핵심이다. 일치하는 "문자"를 찾아야 하기 때문!
반복문을 사용하여 i와 맞는 수를 찾고 거기서 i가 빠진 개수의 1을 빼면 i가 몇개 있는지 나온다. (split(i).length-1=특정문자갯수)
여기서 나는 왜 1을 빼는지가 도통 이해가 안되서 힘들었는데
여기서 설명을 잘해줘서 이해하고 넘어갈 수 있었다!!

profile
大器晩成

0개의 댓글