✏️ 문제(10807 / 개수 세기 / node.js)
10807번: 개수 세기
첫째 줄에 정수의 개수 N(1 ≤ N ≤ 100)이 주어진다. 둘째 줄에는 정수가 공백으로 구분되어져있다. 셋째 줄에는 찾으려고 하는 정수 v가 주어진다. 입력으로 주어지는 정수와 v는 -100보다 크거
www.acmicpc.net
📝 해답
const fs = require('fs');
const input = fs.readFileSync('/dev/stdin').toString().split('\n');
const N = Number(input[0]);
const arr = input[1].split(' ').map(Number);
const v = Number(input[2]);
let cnt = 0;
for (let i = 0; i < N; i++) {
if (arr[i] === v) cnt++;
}
console.log(cnt);
✏️ 문제(10871 / X보다 작은 수 / node.js)
10871번: X보다 작은 수
첫째 줄에 N과 X가 주어진다. (1 ≤ N, X ≤ 10,000) 둘째 줄에 수열 A를 이루는 정수 N개가 주어진다. 주어지는 정수는 모두 1보다 크거나 같고, 10,000보다 작거나 같은 정수이다.
www.acmicpc.net
📝 해답
const fs = require('fs');
const input = fs.readFileSync('/dev/stdin').toString().split('\n');
const [N, X] = input[0].split(' ').map(Number);
const arr = input[1].split(' ').map(Number);
const answer = [];
arr.forEach((x) => {
if (x < X) answer.push(x);
});
console.log(answer.join(' '));
✏️ 문제(10818 / 최소, 최대 / node.js)
10818번: 최소, 최대
첫째 줄에 정수의 개수 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 N개의 정수를 공백으로 구분해서 주어진다. 모든 정수는 -1,000,000보다 크거나 같고, 1,000,000보다 작거나 같은 정수이다.
www.acmicpc.net
📝 해답
const fs = require('fs');
const input = fs.readFileSync('/dev/stdin').toString().split('\n');
const N = Number(input[0]);
const arr = input[1].split(' ').map(Number);
console.log(Math.min(...arr), Math.max(...arr));
✏️ 문제(2562 / 최댓값 / node.js)
2562번: 최댓값
9개의 서로 다른 자연수가 주어질 때, 이들 중 최댓값을 찾고 그 최댓값이 몇 번째 수인지를 구하는 프로그램을 작성하시오. 예를 들어, 서로 다른 9개의 자연수 3, 29, 38, 12, 57, 74, 40, 85, 61 이 주어
www.acmicpc.net
📝 해답
const fs = require('fs');
const input = fs.readFileSync('/dev/stdin').toString().split('\n').map(Number);
let max = input[0];
let maxCnt = 0;
for (let i = 1; i < 9; i++) {
if (max < input[i]) {
max = input[i];
maxCnt = i;
}
}
console.log(max);
console.log(maxCnt + 1);
✏️ 문제(5579 / 과제 안 내신 분..? / node.js)
5597번: 과제 안 내신 분..?
X대학 M교수님은 프로그래밍 수업을 맡고 있다. 교실엔 학생이 30명이 있는데, 학생 명부엔 각 학생별로 1번부터 30번까지 출석번호가 붙어 있다. 교수님이 내준 특별과제를 28명이 제출했는데,
www.acmicpc.net
📝 해답
const fs = require('fs');
const input = fs.readFileSync('/dev/stdin').toString().split('\n').map(Number);
const students = [];
for (let i = 1; i <= 30; i++) {
if (!input.includes(i)) students.push(i);
}
console.log(students.join('\n'));
✏️ 문제(3052 / 나머지 / node.js)
3052번: 나머지
각 수를 42로 나눈 나머지는 39, 40, 41, 0, 1, 2, 40, 41, 0, 1이다. 서로 다른 값은 6개가 있다.
www.acmicpc.net
📝 해답
const fs = require('fs');
const input = fs.readFileSync('/dev/stdin').toString().trim().split('\n').map(Number);
//trim() 없으면 '틀렸습니다' 출력
let answer = input;
for (let i = 0; i < input.length; i++) {
answer[i] = answer[i] % 42;
}
answer = new Set(answer);
console.log([...answer].length);
✏️ 문제(1546 / 평균 / node.js)
1546번: 평균
첫째 줄에 시험 본 과목의 개수 N이 주어진다. 이 값은 1000보다 작거나 같다. 둘째 줄에 세준이의 현재 성적이 주어진다. 이 값은 100보다 작거나 같은 음이 아닌 정수이고, 적어도 하나의 값은 0보
www.acmicpc.net
📝 해답
const fs = require('fs');
const input = fs.readFileSync('/dev/stdin').toString().split('\n');
const N = Number(input[0]);
const score = input[1].split(' ').map(Number);
const max = Math.max(...score);
const newScore = score.map((x) => (x / max) * 100);
const sum = newScore.reduce((a, b) => a + b, 0);
const len = newScore.length;
const average = sum / len;
console.log(average.toFixed(2));
✏️ 문제(8958 / OX퀴즈 / node.js)
8958번: OX퀴즈
"OOXXOXXOOO"와 같은 OX퀴즈의 결과가 있다. O는 문제를 맞은 것이고, X는 문제를 틀린 것이다. 문제를 맞은 경우 그 문제의 점수는 그 문제까지 연속된 O의 개수가 된다. 예를 들어, 10번 문제의 점수
www.acmicpc.net
📝 해답
const fs = require('fs');
const input = fs.readFileSync('/dev/stdin').toString().split('\n');
const T = Number(input.shift());
for (let i = 0; i < T; i++) {
let score = 0;
let totalScore = 0;
for (let j = 0; j < input[i].length; j++) {
if (input[i][j] === 'O') score++;
else score = 0;
totalScore += score;
}
console.log(totalScore);
}
✏️ 문제(4344 / 평균은 넘겠지 / node.js)
4344번: 평균은 넘겠지
대학생 새내기들의 90%는 자신이 반에서 평균은 넘는다고 생각한다. 당신은 그들에게 슬픈 진실을 알려줘야 한다.
www.acmicpc.net
📝 해답
const fs = require('fs');
const input = fs.readFileSync('/dev/stdin').toString().split('\n');
const C = Number(input.shift());
for (let i = 0; i < C; i++) {
const score = input[i].split(' ').map(Number);
let sum = 0;
let cnt = 0;
for (let j = 1; j <= score[0]; j++) {
sum += score[j];
}
const average = sum / score[0];
for (let k = 1; k <= score[0]; k++) {
if (score[k] > average) cnt++;
}
const answer = ((cnt / score[0]) * 100).toFixed(3);
console.log(answer + '%');
}
댓글