JavaScript
-
[백준] 24265번: 알고리즘 수업 - 알고리즘의 수행 시간 4 (Node.js)📝 알고리즘/백준 2024. 9. 9. 17:35
접근방식이번 문제는 알고리즘의 수행시간3과 비슷해보이지만 반복문의 범위가 다릅니다.반복문의 입력 크기 n에 대해 선형적으로 실행되더군요. MenOfPassion(A[], n) { sum 우선 보기 쉽게 javascript로 변형해보았습니다. 외부 반복문과 내부 반복문으로 나눠서 보겠습니다. 외부 반복문i는 0부터 n-1번까지 반복합니다.이 말은 즉, 우리가 잘 알고 있듯이 n번 반복을 의미합니다. 내부 반복문j는 i+1부터 n-1번까지 반복합니다. i = 0 일 때, j는 1부터 n-1번 반복합니다.i = 1 일 때, j는 2부터 n-1번 반복합니다.i = n-1 일 때는 j = n 이므로 n i = n-2 일 때는 j = n-1 이므로 딱 1번 실행됩니다. 그럼 j 루프에서 반복되는 횟수는 ..
-
[백준] 24264번: 알고리즘 수업 - 알고리즘의 수행 시간 3 (Node.js)📝 알고리즘/백준 2024. 9. 9. 13:51
풀이 ⏰이중for문의 시간복잡도에 대해 다루고 있습니다.이중 반복문을 사용하면 시간복잡도가 O(n^2)가 됩니다.=> 외부 반복문 n번, 각 외부 반복문마다 내부 반복문 n번 실행const readline = require("readline");const rl = readline.createInterface({ input: process.stdin, output: process.stdout,});let input = [];rl.on("line", function (line) { input.push(line);}).on("close", function () { // MenOfPassion(A[], n) { // sum 백준 24264번 링크👉 https://www.acmicpc.net/..
-
[백준] 24263번: 알고리즘 수업 - 알고리즘의 수행 시간 2 (Node.js)📝 알고리즘/백준 2024. 9. 9. 13:16
접근방식이전 게시글 [백준] 24262번: 알고리즘 수업 - 알고리즘의 수행 시간 1 (Node.js) 와 마찬가지로알고리즘의 시간 복잡도에 대해 다루는 기초문제이며 제시된 코드의 시간복잡도를 분석하는 문제입니다. 시간복잡도와 빅오표기법(Big-O)에 대한 짧은 설명글은이전 게시글에 있으니 필요하시면 확인하시는게 좋을 것 같습니다😄 이번 문제 또한 시간복잡도에 관한 문제이며, 저번 게시글에는 O(1)에 대한 문제였지만이번에는 for문이 들어간 O(n)에 대한 문제입니다. 풀이 ⏰const readline = require("readline");const rl = readline.createInterface({ input: process.stdin, output: process.stdout,});..
-
[백준] 24262번: 알고리즘 수업 - 알고리즘의 수행 시간 1 (Node.js)📝 알고리즘/백준 2024. 9. 9. 11:19
접근방식알고리즘의 시간 복잡도에 대해 다루는 기초문제이며 제시된 코드의 시간복잡도를 분석하는 문제입니다. 이 문제를 풀기 위해서 기본적으로 알아두셔야 할 것이 2가지가 있는데,시간복잡도와 Big-O 표기법입니다. 1. 시간복잡도알고리즘이 얼마나 빨리 실행되는지를 측정하는 기준입니다.즉, 입력의 크기(데이터 양)가 커지면 알고리즘이 얼마나 더 많은 시간을 필요로 하는지를 보는 것입니다. 예를 들어let sum = 0;for(let i=0; i n = 3 이면 3개의 숫자를 더해야 하므로 연산이 3번 일어납니다.n = 1000이라면 1000개의 숫자를 더해야 하므로 연산이 1000번 일어납니다. 즉, 배열의 크기에 비례해서 연산 횟수도 늘어납니다.결국 배열의 합을 구할 때, 배열의 크기가 커질수록 더 많은 ..
-
[백준] 11659번: 구간 합 구하기 4 (Node.js)📝 알고리즘/백준 2024. 9. 5. 14:59
접근방식처음에 풀기 시작했을 때는, 주어진 배열에 a번~b번까지 자르고 더하고 콘솔!.... 이라고 너무 안일하게 풀었었습니다.const readline = require("readline");const rl = readline.createInterface({ input: process.stdin, output: process.stdout,});let input = [];rl.on("line", function (line) { input.push(line);}).on("close", function () { const num = input[0].split(" ")[1]; const arr = input[1].split(" ").map(Number); input.splice(0, 2); con..
-
[백준] 17478번: 재귀함수가 뭔가요? (Node.js)📝 알고리즘/백준 2024. 9. 3. 15:52
접근방식반복되는 글귀에 반복되는 값"____"을 추가로 하면서 출력을 하는 것을 봤을 때 문제의 제목과도 같이재귀함수를 이용해서 풀라는 것 같다! 재귀함수란?함수 안에서 자기자신을 다시 호출하는 함수를 의미합니다.계속해서 자기자신을 호출하면서 알맞은 조건을 만나면 함수를 빠져나가는 로직을 수행하곤 합니다. 풀이 ⏰const readline = require("readline");const rl = readline.createInterface({ input: process.stdin, output: process.stdout,});let input = [];rl.on("line", function (line) { input.push(Number(line));}).on("close", function..
-
[백준] 9012번: 괄호 (Node.js)📝 알고리즘/백준 2024. 9. 2. 15:59
접근방식자료형 구조인(stack)을 사용하여, 문제를 해결하는데에 초점을 둔 문제인 것 같습니다. 스택은 선형 자료구조로 데이터가 차례로 쌓이면서 순서가 유지되며, 후입선출 방식으로 작동하는 자료구조입니다.아래 이미지를 참조하면 쉽게 이해하실 수 있습니다. 빈 스택에 1, 2, 3을 차례대로 넣을 때는 1이 맨밑 그다음 2, 3 순으로 들어갑니다.하지만 나올 때는 먼저 들어간 1이 아닌 맨 나중에 들어간 3, 2, 1순으로 나오는 자료구조입니다. 풀이 ⏰이와 같이 stack 자료구조를 사용해보면,"(" 를 만나면 stack에 넣고(push) , ")" 를 만나면 stack에서 "("를 빼면 됩니다(pop).const readline = require("readline");const rl = readli..
-
[JS] for in과 for of📙 Javascript 2024. 8. 27. 15:10
결론🙆♂️ for...of는 배열의 반복에서 사용 for...in은 객체의 반복에서 사용 for...of (Array)let arr = ["a", "b", "c"]for(item of arr) { console.log(arr); // a, b, c}용도: for...of는 이터러블 객체(iterable objects)를 순회할 때 사용합니다.동작 방식: 이터러블 객체의 값(value)들을 순회합니다. 이터러블 객체란? 🤷♂️반복(iteration) 할 수 있는 객체를 의미하며, 주로 배열(Array), 문자열(String), Map, Set, 등이 있습니다. for...in (Object)let obj = {"a": 1, "b": 2, "c": 3}for(item in obj) { conso..