ALGORITHM/BOJ

[백준_javascript] 1차원 배열(3052, 10811, 1546)

오늘도 코딩하나 2024. 8. 5. 15:02

#3052 (나머지)

solution1_for.

const fs = require('fs');
const file = process.platform === 'linux' ? '/dev/stdin' : __dirname+'/input.txt';

const input = fs.readFileSync(file).toString().trim().split('\n').map(Number);

let arr = [];
let remain = 0;
for(let i=0; i<input.length; i++) {
    remain = input[i] % 42;
    if(!arr.includes(remain)) {
        arr.push(remain);
    }
}
console.log(arr.length);

 

solution2_new.

const fs = require('fs');
const file = process.platform === 'linux' ? '/dev/stdin' : __dirname+'/input.txt';

const input = fs.readFileSync(file).toString().trim().split('\n').map(Number);

const remain = input.map(x => x%42);

const set = new Set(remain);
const arr = [...set];

console.log(arr.length);

 

#10811 (바구니 뒤집기)

const fs = require('fs');
const file = process.platform === 'linux' ? '/dev/stdin' : __dirname+'/input.txt';

const input = fs.readFileSync(file).toString().trim().split('\n');
let [n,m] = input[0].split(' ').map(Number);

let arr = new Array(n).fill().map((x,y) => y+1);
let newArr = [];
for(let l=1; l<=m; l++) {
    let [i,j] = input[l].split(' ').map(Number);
    let rev = arr.slice(i-1, j).reverse();
    // splice(시작 인덱스, 삭제할 값의 개수, 없애고 가져올 값)
    arr.splice(i-1, j-i+1, ...rev);
}

console.log(arr.join(' '));

 

#1546 (평균)

const fs = require('fs');
const file = process.platform === 'linux' ? '/dev/stdin' : __dirname+'/input.txt';

const input = fs.readFileSync(file).toString().trim().split('\n');
let n = parseInt(input[0]);

let nums = input[1].split(' ').map(Number);
let maxNum = Math.max(...nums);

let arr = nums.map(x => x/maxNum*100);
let avg = arr.reduce((a,b) => a + b) / n;
console.log(avg);

 

 

### 참고한 블로그

https://velog.io/@yeoni/%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-%EB%B0%B1%EC%A4%80-3052-javascript

 

[알고리즘] 백준 3052 javascript

두 자연수 A와 B가 있을 때, A%B는 A를 B로 나눈 나머지 이다. 예를 들어, 7, 14, 27, 38을 3으로 나눈 나머지는 1, 2, 0, 2이다. 수 10개를 입력받은 뒤, 이를 42로 나눈 나머지를 구한다. 그 다음 서로 다른

velog.io

https://velog.io/@re_go/%EB%B0%B1%EC%A4%80-10811%EB%B2%88-%EB%AC%B8%EC%A0%9C-%EB%B0%94%EA%B5%AC%EB%8B%88-%EB%92%A4%EC%A7%91%EA%B8%B0-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-%EC%84%A4%EB%AA%85-%EB%AC%B8%EC%A0%9C-%ED%92%80%EC%9D%B4-with-%EC%9E%90%EB%B0%94%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8Javascript

 

[백준 10811번 문제] 바구니 뒤집기 | 알고리즘 설명 & 문제 풀이 with 자바스크립트(Javascript)

이 문제의 경우 문제를 이해하는데 꽤 소요가 걸린 문제였지만, 이해를 하고 나니 한결 편해진 문제였습니다. 또 이 문제에서 splice(https://velog.io/@re_go/Javascript-%EB%B0%B0%EC%97%B4-%EC%B4%9D%EC%A0

velog.io

https://fromnowwon.tistory.com/entry/reduce

 

[Javascript] 배열 값의 평균 구하기 - reduce() 매서드

누구나 알고 있겠지만 평균을 구할 때에는 저장된 요소의 값을 모두 더하고 그 요소의 개수만큼 나누면 된다. 이렇게 평균값을 구하는 방식을 코드로 작성해보자. 1 2 3 4 const array = [12, 5, 7, 32, 10]

fromnowwon.tistory.com