일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 정재남
- 코드스테이츠
- 코어 자바스크립트
- python
- 타입스크립트 올인원
- SQL 고득점 Kit
- javascript
- 4주 프로젝트
- 렛츠기릿 자바스크립트
- LeetCode
- 프로그래머스
- js
- codestates
- til
- Async
- 자바스크립트
- 파이썬
- 리트코드
- 리액트
- programmers
- 2주 프로젝트
- 제로초
- 백준
- 타입스크립트
- 회고
- 손에 익히며 배우는 네트워크 첫걸음
- 알고리즘
- 타임어택
- 토익
- 리덕스
- Today
- Total
목록Problem Solving/Algorithm 문제 풀기 (172)
Jerry
손익 분기점 //! #1 /* A: 고정 비용, B: 가변 비용 C: 소비자 가격 a + b Number(el)); let [fixedPrice, variablePrice, customerPrice] = input; let bep = 0; let f = fixedPrice; let v = 0; let c = 0; while (1) { console.log(f + v, c); if (f + v 2100000000 || v > 2100000000 || c > 2100000000) { bep = -1; break; } // f = fixedPrice * (bep + 1); v = variablePrice * (bep + 1); c = cust..
1. 아스키코드 let input = require('fs').readFileSync('/dev/stdin').toString(); console.log(input.charCodeAt(0)); 2. 숫자의 합 let input = require('fs').readFileSync('/dev/stdin').toString().split('\n'); let sum = input[1].split('').reduce((acc, cur) => acc + Number(cur), 0); console.log(sum); 3. 알파벳 찾기 let input = require("fs").readFileSync("/dev/stdin").toString(); let arr = []; for (let i = 97; i 1) co..
셀프 넘버 const selfNums = []; const main = () => { for (let i = 1; i
1. 최소, 최대 let input = require('fs').readFileSync('/dev/stdin').toString().split('\n'); let len = Number(input[0]); let resultMinMax = input[1].split(' ').reduce((minMax, num) => { const number = parseInt(num); minMax[0] = minMax[0] > number ? number : minMax[0]; minMax[1] = minMax[1] < number ? number : minMax[1]; return minMax; }, [1000000, -1000000]); console.log(resultMinMax.join(' ')); 2. 최댓..
Psuedo Code /* lcm(least common multiple) arr 요소들의 최소공배수를 구하라 1. gcd(great common dividor) 구한다. - 수가 3개 이상일 때(다항식), gcd 구하는 법을 찾아보자 2. lcm을 구하자 - 수가 3개 이상일 때(다항식), lcm 구하는 법을 찾아보자 */ Submit Code function gcd(a, b) { if (a === 0) return b; return gcd(b % a, a); } function lcm(a, b) { return (a * b) / gcd(a, b); } function solution(arr) { let result = 1; for (let i = 0; i < arr.length; i++) { resu..
Pseudo Code /* loop start 2중 루프 바깥 포문은 skill 기준 내부 포문은 skill_trees 기준 skill 각 요소를 기준으로, 각 skill_trees의 해당 skill 요소 위치를 찾아서 빈 배열에 담는다. loop end loop start 배열을 다시 탐색하여 각 요소의 idx 순서가 오름차순이면 통과(counting) 그렇지 않으면, 미통과 loop end return cnt; 종료 */ Submit Code function solution(skill, skill_trees) { let arr = new Array(skill_trees.length).fill(''); for (let y = 0; y < skill.length; y++) { for (let x = 0;..
Pseudo Code /* 1. n을 3진법으로 변환 - n이 0이 될 때까지, 나누어준다. - 각 나머지를 문자열로 만들어 unshift로 더해준다. 2. 1의 결괏값 뒤집기 - reverse를 이용한다. 3. 2의 결과값, 10진법으로 변환 - 결과값의 마지막 요소부터 첫 번째 요소 순으로 탐색한다. (각 요소는 전 요소의 제곱) - 각 요소의 값 * (3^idx) - sum 변수를 이용해서 각 요소의 값을 누적값을 만든다. 4. 3의 결과값을 반환 */ First Try 테스트 10이 통과가 안 되었다. 찾아보니, 큰 수가 들어올 경우에 sum이 너무 커진 게 문제였다. Because JavaScript's numbers are IEEE-754 double-precision binary floati..
혹시 틀린 점이나 의견주시고 싶으시면 편하게 말씀해주시면 감사하겠습니다 😀 문제 문자열 압축(비손실 압축): 연속된 값의 문자의 개수를 반복되는 값으로 표현 조건 1은 생략 문자열을 1개 이상의 단위로 잘라서 압축 이 중 가장 짧은 문자열의 길이를 반환 1개 이상 단위 to 주어지는 문자열의 길이 / 2의 범위를 가진다. //! first try function solution(s) { let arrForLen = []; let arrForEachUnit = []; while (1) { let strLen = 1; let cnt = 0; let tempStr = ""; for (let q = 0; q < s.length; q += 1) { for (let t = 0; t < s.length; t += s..