일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 |
- 코딩테스트
- HTTP
- Python
- Nginx개념
- HTTP/3.0
- 운동
- JavsScript
- HTTP/1.0
- HTTP/0.9
- 취준생
- Jupyter notebook
- Javascript
- 도커명령어
- 도커 컨테이너
- 도커기본개념
- CS기술면접
- http 메소드
- docker
- HTTP버전
- 컴퓨터공학과
- IT
- 자바스크립트
- CS
- 백준
- 프론트엔드
- Nginx
- 헬스
- 컴퓨공학과
- gunicorn
- HTTP/2.0
- Today
- Total
목록Javascript (11)
dogo_ day
🔅알고리즘 난이도 Lv. 2 🌈문제풀이 Map객체를 사용할 수 있다면 쉽게 문제를 해결 할 수 있다. 이름의 중복이 없다는 가정하에 이름-가입순서로 Map을 생성한다. 그리고 sort를 사용하여 정렬을 할 때 나이가 같다면 Map객체에서 가입순서를 가지고와서 정렬의 기준으로 삼는다. let fs = require('fs'); let input = fs.readFileSync('/dev/stdin').toString().split('\n'); let n = Number(input[0]); let client = []; for(let i = 1; i { if(a[0] != b[0]) return a[0] - b[0] else return joinMap.get(a[1]) - joinMap.get(b[1]); ..
🔅알고리즘 난이도 Lv. 2 🌈문제풀이 문제를 이해하기가 조금 난해했다. N개의 좌표 Xn을 좌표 압축을 적용했을 때 새로운 좌표 X`n이 생성된다. X'n의 좌표는 새로운 특징을 가지고 있다. X' i번째 좌표의 값은 i번째 X좌표 > j번째 X좌표 를 만족하는 개수이다. 즉, X좌표에서 가장 작은 값은 새로운 좌표에서는 0의 값을 가진다. 그 다음 작은 값은 새로운 좌표에서느 1의 값을 가진다. 정렬을 이용하면 해결할 수 있는 알고리즘이다. Set과 Map을 활용하면 문제를 해결 할 수 있다. let fs = require('fs'); let input = fs.readFileSync('/dev/stdin').toString().split('\n'); let n = Number(input[0]); l..
🔅알고리즘 난이도 Lv. 1 🌈문제풀이 자바스크립트에서 sort()의 시간복잡도는 (nlogn) 이다. sort의 동작 원리(compareFunction)를 알고있다면 응용해서 문제를 해결할 수 있다. https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/sort Array.prototype.sort() - JavaScript | MDN sort() 메서드는 배열의 요소를 적절한 위치에 정렬한 후 그 배열을 반환합니다. 정렬은 stable sort가 아닐 수 있습니다. 기본 정렬 순서는 문자열의 유니코드 코드 포인트를 따릅니다. developer.mozilla.org 그리고 결과를 출력할 때 매번 consol..
Array.from() 메서드는 유사 배열 객체(array-like object)나 반복 가능한 객체(iterable object)를 얕게 복사해 새로운 Array 객체를 만듭니다. 출처 : https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/from // Using an arrow function as the map function to // manipulate the elements Array.from([1, 2, 3], x => x + x); // [2, 4, 6] // Generate a sequence of numbers // Since the array is initialized with `und..
🔅알고리즘 난이도 Lv. 1 🌈문제풀이 문자열을 반복해서 출력하면 된다. String.prototype.repeat()을 사용하면 쉽게 풀 수 있다. let fs = require('fs'); let input = fs.readFileSync('/dev/stdin').toString().split('\n'); let n = Number(input[0]) let result = '' // R번 반복 for(let i = 1; i
🔅알고리즘 난이도 Lv. 1 🌈문제풀이 문자열에 대한 기본적인 알고리즘이다. 입력받은 문자열에 대해 하나씩 꺼내어 Number형으로 arr배열에 삽입한다. 이후에 reduce를 사용하여 연산 후 출력한다. let fs = require('fs'); let input = fs.readFileSync('/dev/stdin').toString().split('\n'); let n = input[0]; let arr = input[1].split('').map(Number); let summary = arr.reduce((a,b)=>a+b); console.log(summary); for of을 이용하여 풀이할 수도 있다. for...of 의 공식 정의는 다음과 같다. for...of 명령문은 반복가능한 객체(..
🔅알고리즘 난이도 Lv. 1 🌈문제풀이 너무나도 쉬운 문제였다. 하지만 나는 계속 틀렸다.100번을 쳐다봐도 로직에는 문제가 없었다. 그 이유는 바로 파일을 읽어올 때 trim()을 사용하지 않아서 였다. trim()을 사용하지 않으면 공백, 빈문자열에 대한 오류를 걸러내지 못해서였다. let fs = require('fs'); let input = fs.readFileSync('/dev/stdin').toString().trim().split('\n'); let data = input.map(Number); let mySet = new Set(); for(let d of data){ mySet.add(Number(d) % 42); } console.log(mySet.size);