ALL
[알고리즘]백준 2869번: 달팽이는 올라가고 싶다 W_node.js
문제 2869번: 달팽이는 올라가고 싶다 첫째 줄에 세 정수 A, B, V가 공백으로 구분되어서 주어진다. (1 ≤ B +v); const solution = function (up, dn, h) { let max = (up - dn) * (h / (up - dn)) - dn; return Math.ceil(max / (up - d..
[알고리즘]백준 1193번: 분수찾기 W_node.js
문제 1193번: 분수찾기 첫째 줄에 X(1 ≤ X ≤ 10,000,000)가 주어진다. www.acmicpc.net 풀이 const readFileSyncAddress = '/dev/stdin'; const fs = require('fs'); let [X] = fs .readFileSync(readFileSyncAddress) .toString() .trim() .split(' ') .map((v) => +v); const solution = function (n) { let i = 1; // 현재 범위를 계산할 피연산자 let range = 0; // 현재 범위 let strNum = 0; // 분모 or 분자의 시작지점 // n이 범위에 도달할 때까지 while문 실행 while (range < n..
[알고리즘] 백준 2292번: 벌집 W_node.js
문제 2292번: 벌집 위의 그림과 같이 육각형으로 이루어진 벌집이 있다. 그림에서 보는 바와 같이 중앙의 방 1부터 시작해서 이웃하는 방에 돌아가면서 1씩 증가하는 번호를 주소로 매길 수 있다. 숫자 N이 주어졌 www.acmicpc.net 풀이 const readFileSyncAddress = '/dev/stdin'; const fs = require('fs'); let [N] = fs .readFileSync(readFileSyncAddress) .toString() .trim() .split(' ') .map((v) => +v); const solution = function (n) { let i = 1; let range = 1; // n이 범위를 넘어가면 도달한 것. while (range <..
[TIL] 2022-0523
모던 자바스크립트 딥다이브 - 함수 선언문, 함수 표현식 차이 [모던 자바스크립트 딥다이브] 함수 선언문, 함수 표현식 함수 리터럴 상수 (Constant) : 변하지 않는 변수 (참조 변수 - 주소 값이 변하지 않는 것이다.) 리터럴 (Literal) : 변하지 않는 데이터 그 자체를 의미함. const a = 1; // a -> 상수 // 1 -> 리터럴 리터럴 은.. friedegg556.tistory.com querySelectorAll 과 classList 사용 const containerHidden = document.querySelectorAll('.hidden'); btnLogin.addEventListener('click', function (e) { for (let i = 0; i < ..
[모던 자바스크립트 딥다이브] 함수 선언문, 함수 표현식
함수 리터럴 상수 (Constant): 변하지 않는 변수 (참조 변수 - 주소 값이 변하지 않는 것이다.) 리터럴 (Literal) : 변하지 않는 데이터 그 자체를 의미함. const a = 1; // a -> 상수 // 1 -> 리터럴 리터럴은 사람이 이해할 수 있는 문자 또는 약속된 기호를 사용해 값을 생성하는 표기 방식을 말한다. 즉, 리터럴은 값을 생성하기 위한 표기법이다. 따라서 함수 리터럴도 평가되어 값을 생성하며, 이 값은 객체다. 즉, 함수는 객체다. (값의 성질을 갖는 일급 객체에 해당한다.) 함수 정의 함수 정의 : 함수 호출 전, 인수를 전달 받을 매개변수와 실행할 문들, 그리고 리턴 값을 지정하는 것. 변수는 선언, 함수는 정의라고 하는데 이는 메모리 할당 여부에 따른 표현의 차이..
[알고리즘] 백준 1712번: 손익분기점 W_node.js
문제 1712번: 손익분기점 월드전자는 노트북을 제조하고 판매하는 회사이다. 노트북 판매 대수에 상관없이 매년 임대료, 재산세, 보험료, 급여 등 A만원의 고정 비용이 들며, 한 대의 노트북을 생산하는 데에는 재료비와 www.acmicpc.net 풀이 const readFileSyncAddress = '/dev/stdin'; const fs = require('fs'); let [A, B, C] = fs .readFileSync(readFileSyncAddress) .toString() .trim() .split(' ') .map((v) => +v); const solution = function (a, b, c) { // 고정비용 / (판매가 - 가변비용(이익금)) // 나누어 떨어지지 않는 경우가 있..
[JavaScript] arr.sort() 메서드 (배열의 정렬)
arr.sort([comepareFunction]) sort() 메서드를 배열에 적용하면 조건에 따른 적절한 정렬 후 배열을 리턴한다. 이 때 원본 배열을 직접 변경하기 때문에 사용시 주의가 필요하다. comepareFunction은 두 개의 배열의 요소를 인자로 받는다. 두 요소를 a, b라고 한다면 a와 b를 비교해 얻은 리턴값을 가지고 정렬 순서를 결정한다. comepareFunction의 리턴 값이 0보다 작으면 a, b의 순서로 정렬된다. comepareFunction의 리턴 값이 0보다 크면 b, a의 순서 숫자 오름차순 정렬 const nums = [1,4,3,5,2]; nums.sort((a,b) => { if (a b) retu..
[알고리즘] 백준 1316번: 그룹 단어 체커 W_node.js
문제 https://www.acmicpc.net/problem/1316 1316번: 그룹 단어 체커 그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때 www.acmicpc.net 풀이 const readFileSyncAddress = '/dev/stdin'; const fs = require('fs'); let [N, ...inputs] = fs .readFileSync(readFileSyncAddress) .toString() .trim() .replaceAll(/\r/g, '') .split(/\n/g); const solution..
[알고리즘] 백준 2941번: 크로아티아 알파벳 W_node.js
문제 2941번: 크로아티아 알파벳 예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다. 따라서, 다음과 같이 크로아티아 알파벳을 변경해서 입력했다. 크로아티아 알파벳 변경 č c= ć c- dž dz= đ d- lj lj nj nj š s= ž z= www.acmicpc.net 풀이 const readFileSyncAddress = '/dev/stdin'; const fs = require('fs'); let str = fs.readFileSync(readFileSyncAddress).toString().trim(); const croatian = ['c=', 'c-', 'dz=', 'd-', 'lj', 'nj', 's=', 'z=']; const solution = function (str)..
[알고리즘] 백준 5622번: 다이얼 W_node.js
문제 5622번: 다이얼 첫째 줄에 알파벳 대문자로 이루어진 단어가 주어진다. 단어의 길이는 2보다 크거나 같고, 15보다 작거나 같다. www.acmicpc.net 풀이 const readFileSyncAddress = '/dev/stdin'; const fs = require('fs'); let input = fs.readFileSync(readFileSyncAddress).toString().trim(); const solution = function (str) { let time = 0; for (let x of input) { switch (x) { case 'A': case 'B': case 'C': time += 3; break; case 'D': case 'E': case 'F': time..