본문 바로가기

전체 글11

[백준/자바스크립트] 2839 설탕 배달 2839번: 설탕 배달 상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그 www.acmicpc.net 출력 상근이가 배달하는 봉지의 최소 개수를 출력한다. 만약, 정확하게 N킬로그램을 만들 수 없다면 -1을 출력한다. 3, 5로 나누기 때문에 처음엔 5로 일단 나누고 남은 값을 3으로 나눠서 구하면 될 거라고 생각했다. const fs = require('fs'); let N = fs.readFileSync('./dev/stdin').toString(); let result = -1; let five = parseInt(N / 5); while (five >= 0) { l.. 2023. 12. 9.
[백준/자바스크립트] 2798 블랙잭 2798번: 블랙잭 첫째 줄에 카드의 개수 N(3 ≤ N ≤ 100)과 M(10 ≤ M ≤ 300,000)이 주어진다. 둘째 줄에는 카드에 쓰여 있는 수가 주어지며, 이 값은 100,000을 넘지 않는 양의 정수이다. 합이 M을 넘지 않는 카드 3장 www.acmicpc.net 출력 첫째 줄에 M을 넘지 않으면서 M에 최대한 가까운 카드 3장의 합을 출력한다. 처음 문제를 봤을 때 조합이 떠오르긴 했는데 코드로 작성하려니까 잘 안 돼서 일단 3중 for문을 사용했다. const fs = require('fs'); const input = fs.readFileSync('./dev/stdin').toString().split(/\s/).map(Number); const [N, M] = input.slice(.. 2023. 12. 1.
[백준/자바스크립트] 14912 숫자 빈도수 14912번: 숫자 빈도수 자연수 n (1 ≤ n ≤ 100,000)과 한 자리 숫자 d(0~9)가 첫째 줄에 주어진다. www.acmicpc.net 출력 첫째 줄에 빈도수를 출력한다. 우선 혼자 냅다 푼 코드 const fs = require('fs'); const input = fs.readFileSync('./dev/stdin').toString().split(' ').map(Number); const numArr = []; for (let i = 0; i < input[0]; i++) { numArr[i] = i + 1; } const numStr = numArr.toString().split(''); let count = 0; for (let i = 0; i < numStr.length; i++.. 2023. 12. 1.
[백준/자바스크립트] 24313 알고리즘 수업 - 점근적 표기 1 [백준/Javascript] 24313 알고리즘 수업 - 점근적 표기 1 24313번: 알고리즘 수업 - 점근적 표기 1 f(n) = 7n + 7, g(n) = n, c = 8, n0 = 1이다. f(1) = 14, c × g(1) = 8이므로 O(n) 정의를 만족하지 못한다. www.acmicpc.net 출력 f(n), c, n0가 O(n) 정의를 만족하면 1, 아니면 0을 출력한다. const fs = require('fs'); const [a, c, n] = fs.readFileSync('./dev/stdin').toString().trim().split('\n'); const aa = a.split(' ').map(Number); if (aa[0] * Number(n) + aa[1] 2023. 11. 29.
[백준/자바스크립트] 24262 알고리즘 수업 - 알고리즘의 수행 시간 1~6 [백준/Javascript] 24262~24267 알고리즘 수업-알고리즘의 수행 시간 1~6 시간 복잡도 문제 모음 사실 정말 간단한 시간 복잡도 문제지만, 처음 문제를 봤을 땐 잘 이해가 안 갔다.. 출력 주어진 알고리즘에 대해 입력값에 따른 수행 횟수와 수행 횟수를 다항식으로 나타내었을 때, 최고차항의 차수를 출력한다. 이 부분에서 시간 복잡도 문제라는 걸 바로 알아차려야 했다. 24262번: 알고리즘 수업 - 알고리즘의 수행 시간 1 오늘도 서준이는 알고리즘의 수행시간 수업 조교를 하고 있다. 아빠가 수업한 내용을 학생들이 잘 이해했는지 문제를 통해서 확인해보자. 입력의 크기 n이 주어지면 MenOfPassion 알고리즘 수행 시 www.acmicpc.net 우선 주어진 알고리즘은 따로 루프도 없기.. 2023. 11. 28.
[big-O notation] 빅오 표기법ㅣ시간 복잡도, 공간 복잡도 빅오 표기법이란, 인수가 특정 값이나 무한대를 향하는 경향이 있을 때 함수의 제한 동작을 설명하는 수학적 표기법 -wikipedia 작성한 코드가 얼마나 빠르고 효율적인지 판단하는 기준으로 시간 복잡도와 공간 복잡도를 사용한다. 시간 복잡도 : 실행 시간을 정량화한 것 공간 복잡도 : 실행하는 데 필요한 메모리 사용량을 정량화한 것 필요성 - 코드의 성능을 높일 수 있다. - 어떤 알고리즘으로 접근할 것인지 판단하는데 용이하다. - 에러를 제외한 코드 중 느리게 만드는 것을 찾는데 용이하다. 빅오 표기법은 입력 값에 대한 수식에서 최고차항을 기준으로 알고리즘이 수행되는 최악의 시간 복잡도를 표현한다. (이때 계수, 상수항은 무시하고 최고차항만으로 표현) 점근적 표기법 : 알고리즘의 복잡도를 나타날 때 계.. 2023. 11. 27.