๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ”‘ ์•Œ๊ณ ๋ฆฌ์ฆ˜/๋ฐฑ์ค€ JS

[๋ฐฑ์ค€] ๋ฌธ์ž์—ด / node.js 1427 ์†ŒํŠธ์ธ์‚ฌ์ด๋“œ

by Tamii 2021. 5. 1.
๋ฐ˜์‘ํ˜•

๐Ÿ“Œ1427 ์†ŒํŠธ ์ธ์‚ฌ์ด๋“œ

 

www.acmicpc.net/problem/1427

 

1427๋ฒˆ: ์†ŒํŠธ์ธ์‚ฌ์ด๋“œ

์ฒซ์งธ ์ค„์— ์ •๋ ฌํ•˜๊ณ ์žํ•˜๋Š” ์ˆ˜ N์ด ์ฃผ์–ด์ง„๋‹ค. N์€ 1,000,000,000๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์ž์—ฐ์ˆ˜์ด๋‹ค.

www.acmicpc.net

 

๋‚ด ํ’€์ด

const fs = require("fs");
const input = fs.readFileSync('/dev/stdin').toString().trim();


for (let i = 0; i < input.length; i++) {
  numLst.push(input[i]);
}

console.log(
  numLst
    .sort((a, b) => b - a)
    .join("")
    .trim()
);

2143 => "2143"

ํ•˜๋‚˜์˜ ๋ฌธ์ž๋กœ ์ž…๋ ฅ๋ฐ›์Œ

for ๋ฌธ์„ ๋Œ๋ฉฐ ๋ฐฐ์—ด์— ๋„ฃ๊ธฐ

์ •๋ ฌ 

 

๋‹ค๋ฅธ ํ’€์ด

const arr = require("fs").readFileSync("/dev/stdin").toString().trim().split("").map(i=>parseInt(i));
const nums = Array(10).fill(0);
arr.forEach(i => nums[9-i] += 1);
let sorted = "";
for (let i=0; i<nums.length; i++) {
    sorted += String(9-i).repeat(nums[i]);
}
console.log(sorted)

์ €๋ฒˆ์— ์ •๋ ฌํ•  ๋•Œ ์ป๋˜ ๋ฐฉ๋ฒ•์ธ๋ฐ ์‹œ๊ฐ„์ดˆ๊ณผ ๋– ์„œ ๋ชปํ•ด์„œ ์ด๋ฒˆ์—” ์•ˆ์ผ์ง€๋งŒ

nums = [0,0,0,0,0,0,0,0,0,0] ๋ฅผ ๋งŒ๋“ค๊ณ  

arr๋ฅผ ๋Œ๋ฉฐ num[arr]์„ ํ•ด์ค€๋‹ค

 * ๋‹ค๋งŒ ์—ฌ๊ธฐ์„œ ๋‚ด๋ฆผ์ฐจ์ˆœ ์ •๋ ฌ์ด๊ธฐ ๋•Œ๋ฌธ์— num[9-i]

 * ๋ฐ˜๋ณต๋œ ์ˆ˜๊ฐ€ ๋‚˜์˜ฌ ๊ฒฝ์šฐ๋ฅผ ๋Œ€๋น„ํ•ด repeat(nums[i])

 

๋‚˜์˜ ํ’€์ด ๋ฐฉ๋ฒ•๊ณผ ํฐ ์†๋„์ฐจ์ด๊ฐ€ ๋‚˜์ง„ ์•Š๋Š”๋‹ค.

 

 

๐Ÿ’™๋‚˜๋Š” ๋‹จ์ˆœํžˆ ์ •๋ ฌ = sort ํ•ด์•ผ์ง€ ๋ผ๊ณ  ์ƒ๊ฐํ•˜๋Š”๋ฐ , ์ด๋Ÿฐ ์ €๋Ÿฐ ๋ฐฉ๋ฒ•์œผ๋กœ ํ‘ธ๋Š” ์‚ฌ๋žŒ๋“ค์˜ ์‚ฌ๊ณ ๋ฐฉ์‹์ด ๊ท€๊ฐ์ด ๋œ๋‹ค.

 

 


๋‚ดํ’€์ด (์˜ค๋‹ต)

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


n = parseInt(input.shift());

numLst = Array(n).fill(0);

input.map((ele, i) => (numLst[ele] += 1));

numLst.map((ele, i) => {
  if (ele !== 0) {
    for (let j = 0; j < ele; j++) {
      console.log(i);
    }
  }
});

์ž…๋ ฅ์ˆซ์ž๋ฒ”์œ„๊ฐ€ ํฌ๋ฉด ์ž๊พธ ์ƒˆ๋กœ์šด ๋ฐฉ๋ฒ•์ด ํ•„์š”ํ•˜๋‹ค๋Š” ๊ฐ•๋ฐ•์ด ์ƒ๊ฒจ ์•„๊นŒ ๋ฐฐ์šด ์ธ๋ฑ์Šค๋ฅด ์ด์šฉํ•ด ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ƒ๊ฐ€ํ•ด ๋ณด์•˜์ง€๋งŒ ๋ฉ”๋ชจ๋ฆฌ์ดˆ๊ณผ 

 

 

๊ทผ๋ฐ ์›ฌ๊ฑธ..

 

nodejs๋กœ ๋งž์€ ์‚ฌ๋žŒ์—†๋Š”๊ฑฐ ์‹คํ™”์ธ๊ฐ€์š”...?

์–ด์ฉ์ง€...

์•„๋ฌดํŠผ ์•ˆ๋ฉ๋‹ˆ๋‹ค ๋…ธ๋“œ์ œ์ด์—์Šค๋กœ!!!!

 

 

 

 


๐Ÿ“Œ1931 ํšŒ์˜์‹ค

www.acmicpc.net/problem/1931

 

1931๋ฒˆ: ํšŒ์˜์‹ค ๋ฐฐ์ •

(1,4), (5,7), (8,11), (12,14) ๋ฅผ ์ด์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

www.acmicpc.net

๋‚ดํ’€์ด(์˜ค๋‹ต)

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


n = input.shift();

let numLst = [];

input.map((ele, i) => {
  numLst.push(ele.split(" "));
});

numLst = numLst.sort((a, b) => a[1] - b[1]);

numLst = numLst.sort((a, b) => a[0] - b[0]);

let startTime = 0;
let endTime = 0;

let cnt = 0;
for (let i = 0; i < numLst.length; i++){
    if (startTime >= numLst[i][0]) {
        cnt += 1
        endTime = numLst[i][1];
    }
}

ํšŒ์˜ ๋๋‚˜๋Š” ์‹œ๊ฐ„ -> ํšŒ์˜ ์‹œ์ž‘ํ•˜๋Š” ์‹œ๊ฐ„์œผ๋กœ ์ •๋ ฌํ•œ ํ›„ 

ํšŒ์˜ ๋๋‚˜๋Š” ์‹œ๊ฐ„>-= ์‹œ์ž‘ํ•˜๋Š” ์‹œ๊ฐ„ ์˜ ๊ฒฝ์šฐ๋ฅผ ์„ธ๋ ค๊ณ  ํ•˜๋‹ค๊ฐ€ ์˜ค๋ฅ˜๋ฅผ ๋ฐœ๊ฒฌํ–ˆ๋Š๋ฐ

์ด๋Ÿฐ์‹์œผ๋กœ ์ •๋ ฌํ•˜๋ฉด ๋‘๊ฐ€์ง€ ๊ธฐ์ค€์œผ๋กœ ์ •๋ ฌํ•˜๋Š”๊ฒƒ์ด ์•„๋‹ˆ๋ผ, 

๋งˆ์ง€๋ง‰ ๊ธฐ์ค€์œผ๋กœ๋งŒ ์ •๋ ฌ์ด ๋˜๋Š” ๊ฒƒ์ด์—ˆ๋‹ค.!!!!!

 

 

โญ๏ธ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ๋‹ค์ค‘์กฐ๊ฑด sort

[[1,2] , [3,4]] ์˜ ๋ฐฐ์—ด  ๋‘๋ฒˆ์งธ์š”์†Œ=> ์ฒซ๋ฒˆ์žฌ ์š”์†Œ ๋กœ ์ •๋ ฌํ•˜๊ธฐ

sorted_list = input.sort((a, b) => {
  if (a[1] > b[1]) return -1;
  if (a[1] < b[1]) return 1;
  if (a[0] > b[0]) return -1;
  if (a[0] < b[0]) return 1;
  return 0;
});

โš ๏ธ์—ฌ๊ธฐ์„œ ์ฃผ์˜ํ• ์  !

์ง€๊ธˆ input์€ ๋ฌธ์ž์—ด์ด๊ธฐ ๋•Œ๋ฌธ์— parseInt๋ฅผ ํ•ด์ฃผ์ง€ ์•Š์œผ๋ฉด ๋ฌธ์ž ์œ ๋‹ˆ์ฝ”๋“œ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ •๋ ฌํ•˜๊ธฐ

๋•Œ๋ฌธ์— ํƒ€์ž…์ด ๋ฌด์—‡์ธ์ง€ ์ •ํ™•ํžˆ ํ™•์ธํ•ด์•ผ ํ•œ๋‹ค.

 

 

๋‚ด ํ’€์ด

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


n = input.shift();

let numLst = [];
input.map((ele, i) => {
  numLst.push(ele.split(" "));
});

//2๊ฐ€์ง€ ๊ธฐ์ค€ ์ •๋ ฌ
numLst = numLst.sort(function (a, b) {
  if (parseInt(a[1]) > parseInt(b[1])) return 1;
  if (parseInt(a[1]) < parseInt(b[1])) return -1;
  if (parseInt(a[0]) > parseInt(b[0])) return 1;
  if (parseInt(a[0]) < parseInt(b[0])) return -1;
  return 0;
});

//ํšŒ์˜๋<=ํšŒ์˜์‹œ์ž‘
let endTime = 0;
let cnt = 0;
for (let i = 0; i < numLst.length; i++) {
  if (endTime <= parseInt(numLst[i][0])) {
    cnt += 1;
    endTime = parseInt(numLst[i][1]);
  }
}
console.log(cnt);

 

1) 2๊ฐ€์ง€ ๊ธฐ์ค€์œผ๋กœ ์ •๋ ฌ (ํšŒ์˜๋๋‚˜๋Š” ์‹œ๊ฐ„ -> ํšŒ์˜ ์‹œ์ž‘ํ•˜๋Š” ์‹œ๊ฐ„)

2) ํšŒ์˜ ๋๋‚˜๋Š” ์‹œ๊ฐ„์ด ์‹œ์ž‘ํ•˜๋Š” ์‹œ๊ฐ„๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ๊ฒฝ์šฐ (ํšŒ์˜ ๊ฐ€๋Šฅ ) ์œผ๋กœ ์ •ํ•˜๊ณ  ์…ˆ!

 

๋‹ค๋ฅธ ํ’€์ด

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

input.shift()
input = input.map(v => v.split(' ').map(v => +v)).sort((a, b) => a[1]-b[1] || a[0]-b[0])

let [time, answer] = [0, 0]
for (let [s, e] of input)
    if (time <= s) {
        time = e
        answer++
    }
console.log(answer)

์„ธ์ƒ์—

* split & int ๋กœ ๋ฐ”๊พธ๊ธฐ & ๋‹ค์ค‘์กฐ๊ฑด ๋ฐฐ์—ด์ด ํ•œ๋ฒˆ์— ๋œ๋‹ค๋‹ˆ...

* for๋ฌธ์—์„œ ๋ณ€์ˆ˜ 2๊ฐœ๋กœ ๋Œ๋ฆด ์ˆ˜ ์žˆ๋‹ค๋‹ˆ...

* ๋ณ€์ˆ˜๋„ ํ•œ๋ฒˆ์— ์ƒ์„ฑ, ์ดˆ๊ธฐํ™” ํ•  ์ˆ˜ ์žˆ๋‹ค๋‹ˆ...

 

๋งŽ์€ ๊ฒƒ์„ ์•Œ ๊ฒŒ ๋œ ๊ณ ์ˆ˜์˜ ์ฝ”๋“œ์˜€๋‹ค.

 

 

๐Ÿ’™ JS๋ฅผ ์ž์œ ์ž์žฌ๋กœ ๋‹ค๋ฃจ๋Š” ์‚ฌ๋žŒ์ด ๋˜์ž..

 

 

๋Œ“๊ธ€