일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 손에 익히며 배우는 네트워크 첫걸음
- 제로초
- 코어 자바스크립트
- 타입스크립트 올인원
- 자바스크립트
- 타임어택
- 렛츠기릿 자바스크립트
- 정재남
- LeetCode
- 알고리즘
- 백준
- 리트코드
- python
- 2주 프로젝트
- programmers
- 회고
- js
- codestates
- 리덕스
- SQL 고득점 Kit
- 타입스크립트
- 파이썬
- 프로그래머스
- til
- 코드스테이츠
- Async
- 토익
- javascript
- 리액트
- 4주 프로젝트
Archives
- Today
- Total
Jerry
백준 - 단계별 문제 - 1차원 배열 - node.js / javascript 본문
Problem Solving/Algorithm 문제 풀기
백준 - 단계별 문제 - 1차원 배열 - node.js / javascript
juicyjerry 2021. 7. 6. 00:39반응형
1. 최소, 최대
let input = require('fs').readFileSync('/dev/stdin').toString().split('\n');
let len = Number(input[0]);
let resultMinMax = input[1].split(' ').reduce((minMax, num) => {
const number = parseInt(num);
minMax[0] = minMax[0] > number ? number : minMax[0];
minMax[1] = minMax[1] < number ? number : minMax[1];
return minMax;
}, [1000000, -1000000]);
console.log(resultMinMax.join(' '));
2. 최댓값
let input = require('fs').readFileSync('/dev/stdin').toString().split('\n').map((el) => Number(el));
let max = -99;
for (let i = 0; i < input.length; i++) {
if (max < input[i]) {
max = input[i];
maxIdx = i + 1;
}
}
console.log(max, maxIdx);
3. 숫자의 개수
let input = require('fs').readFileSync('/dev/stdin').toString().split('\n');
let result = (input[0] * input[1] * input[2]).toString();
let numsObj = {};
for (let i = 0; i < result.length; i++) {
numsObj[result[i]] = numsObj[result[i]] ? numsObj[result[i]] += 1 : 1;
}
for (let i = 0; i < 10; i++) {
if (numsObj[i]) console.log(numsObj[i]) ;
else console.log(0);
}
4. 나머지
/*
주어진 수의 나머지를 A 배열에 추가한다.
순회하면서 indexOf 메서드를 이용해, 중복되는 수가 없으면 B 배열에 추가한다.
B 배열의 길이를 반환한다.
=>
*/
let input = require('fs').readFileSync('/dev/stdin').toString().split('\n')
let numbers = [];
for (let i = 0; i < 10; i++) {
numbers.push(Number(input[i]));
}
let restArr = numbers.map((el) => el % 42);
let notOverrideArr = [];
for (let i = 0; i < restArr.length; i++) {
if (notOverrideArr.indexOf(restArr[i]) === -1) notOverrideArr.push(restArr[i]);
}
console.log(notOverrideArr.length);
5. 평균
/*
모든 점수를 숫자형으로 바꾼다.
점수 중 최댓값을 찾는다.
최댓값으로 각 요소를 나눠주고 * 100을 해준다.
모든 결괏값 요소를 더한다.
합계를 과목의 갯수로 나눠준다.
*/
let input = require('fs').readFileSync('/dev/stdin').toString().split('\n');
let len = Number(input[0]);
let nums = input[1].split(' ').map((el) => Number(el));
let max = nums[0];
let sum = 0;
for (let i = 1; i < len; i++) {
if (max < nums[i]) max = nums[i];
}
for (let i = 0; i < len; i++) {
nums[i] = (nums[i] / max) * 100;
}
for (let i = 0; i < len; i++) {
sum += nums[i];
}
console.log(sum / len);
6. OX퀴즈
/*
새로운 배열은 1과 0으로 이뤄진다.
if : 'O'인 요소일 경우에 다음 요소도 동일하다면 1 대신 이전 값의 +1를 해준다.
이 값의 모든 요소의 합계를 반환한다.
*/
let input = require('fs').readFileSync('/dev/stdin').toString().split('\n');
let len = Number(input[0]);
// let answer = '';
for (let y = 1; y <= len; y++) {
let ret = [];
for (let x = 0; x < input[y].length; x++) {
if (input[y][x] === 'O') {
if (input[y][x - 1] === 'O') {
ret[x] = ret[x - 1] + 1;
} else {
ret[x] = 1;
}
} else {
ret[x] = 0;
}
}
let sum = 0;
for (let i = 0; i < ret.length; i++) {
sum += ret[i];
}
console.log(sum);
// answer += sum + '\n';
}
// console.log(answer);
7. 평균은 넘겠지
/*
각 줄의 평균 점수를 구한다.
각 줄에서 평균을 넘는 학생 수를 구하여 비율을 구한다.
*/
let input = require('fs').readFileSync('/dev/stdin').toString().split('\n');
let inputLen = Number(input[0]);
for (let i = 1; i <= inputLen; i++) {
let classes = input[i].split(' ');
let classesLen = Number(classes[0]);
let sum = 0;
for (let j = 1; j <= classesLen; j++) {
sum += Number(classes[j]);
}
let classesAvg = (sum / classesLen);
let cnt = 0;
for (let t = 1; t <= classesLen; t++) {
if (classes[t] > classesAvg) cnt++;
}
console.log((cnt / classesLen * 100).toFixed(3) + '%');
}
반응형
'Problem Solving > Algorithm 문제 풀기' 카테고리의 다른 글
백준 - 단계별 문제 - 문자열 - node.js / javascript (0) | 2021.07.07 |
---|---|
백준 - 단계별 문제 - 함수 - node.js / javascript (0) | 2021.07.07 |
[프로그래머스 / 자바스크립트] N개의 최소공배수 (0) | 2021.06.18 |
프로그래머스 자바스크립트 - 스킬트리 (0) | 2021.06.15 |
프로그래머스 자바스크립트 - 3진법 뒤집기 (0) | 2021.06.13 |