Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 15 additions & 0 deletions week16/BOJ_1_20115/김정연_20115.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
const [[N], input] = require("fs").readFileSync("./dev/stdin").toString().trim().split("\n").map((v) => {v = v.split(" ").map(Number);return v;});

input.sort((a, b) => b - a);

let min = input.pop();
let max = input.shift() + min / 2;

while (input.length) {
min = input.pop();

min > max ? ([min, max] = [max, min]) : "";
max += min / 2;
}

console.log(max);
39 changes: 39 additions & 0 deletions week16/BOJ_2_12933/[미완]김정연_12933.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
let input = require('fs').readFileSync('./dev/stdin').toString().split(' ');

function solution(input) {
let cnt = 0;
let idx = 0;
let first = true;
const word = ["q", "u", "a", "c", "k"];
const visited = Array(input.length).fill(false);

if (input.length % 5 !== 0) return -1;

for (let i = 0; i < input.length; i++) {
if (input[i] === "q" && !visited[i]) {
first = true; //탐색

for (let j = i; j < input.length; j++) {
if (word[idx] === input[j] && !visited[j]) {
visited[j] = true;

if (input[j] === "k") {
if (first) {
cnt += 1;
first = false;
}
idx = 0;
continue;
}

idx += 1;
}
}
console.log(cnt);
console.log(visited);
}
}
console.log(cnt);
}

solution(input);
36 changes: 36 additions & 0 deletions week16/BOJ_4_18352/김정연_18352.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
//https://velog.io/@jiyaho/%EB%B0%B1%EC%A4%80-18352-%ED%8A%B9%EC%A0%95-%EA%B1%B0%EB%A6%AC%EC%9D%98-%EB%8F%84%EC%8B%9C-%EC%B0%BE%EA%B8%B0-Node.js-BFS-%ED%92%80%EC%9D%B4
const input = require('fs').readFileSync("./dev/stdin").toString().trim().split('\n');
const [N, M, K, X] = input.shift().split(' ').map(Number);
const arr = input.map((v) => v.split(' ').map(Number));
const graph = [...Array(N + 1)].map(() => []);
const distance = Array(N + 1).fill(0); // 도로의 거리를 카운트하면서 방문 체크에 이용할 배열
let answer = [];

// 단방향 그래프 만들기
arr.map(([from, to]) => graph[from].push(to));

const bfs = (start) => {
const queue = [start];
distance[start] = 1; //bfs 거리 start

while (queue.length) {
const now = queue.shift();
if (distance[now] == K + 1) {
answer.push(now);
continue;
}
for (const next of graph[now]) {
if (!distance[next]) {
queue.push(next);
distance[next] = distance[now] + 1;
}
}
}
};

bfs(X);
if (answer.length) {
answer = answer.sort((a, b) => a - b).join('\n');
} else answer = -1;

console.log(answer);
32 changes: 32 additions & 0 deletions week16/BOJ_5_21921/김정연_21921.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
const input = require("fs").readFileSync("./dev/stdin").toString().trim().split("\n");
const [N, X] = input[0].split(" ").map((x) => +x);
const visits = input[1].split(" ").map((x) => +x);

const solution = () => {
let s = 0;
let cnt = 0;

for (let i = s; i < X; i++) {
cnt += visits[i]; //방문자
} //화살표 함수표현식 지향!

let maxVisit = cnt;
let answer = 1;

for (let i = s + 1; i + X <= N; i++) {
cnt = cnt - visits[i - 1] + visits[i + X - 1];
if (cnt > maxVisit) {
maxVisit = cnt;
answer = 1;
} else if (cnt === maxVisit) answer++; //최대 방문자수 count
}

if (maxVisit === 0) {
console.log("SAD");
} else {
console.log(maxVisit);
console.log(answer);
}
};

solution();