일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- docker
- 프론트엔드
- 컴퓨터공학과
- 백준
- Python
- Jupyter notebook
- 취준생
- gunicorn
- CS
- 코딩테스트
- 운동
- 도커 컨테이너
- CS기술면접
- HTTP
- HTTP/0.9
- JavsScript
- http 메소드
- 도커기본개념
- Javascript
- Nginx개념
- HTTP버전
- HTTP/2.0
- IT
- 컴퓨공학과
- HTTP/1.0
- Nginx
- HTTP/3.0
- 도커명령어
- 헬스
- 자바스크립트
- Today
- Total
목록IT (20)
dogo_ day
🔅알고리즘 난이도 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);
🔅알고리즘 난이도 Lv. 1 🌈문제풀이 문제해결 아이디어는 간단하다. 하지만 내가 블로그를 쓰는 이유는 배열의 메소드를 무분별하게 사용하면 성능이 안좋다는 것을 알았기 때문이다. 위 문제를 해결하기 위해 배열의 메소드 중 sort를 사용했다. 문제는 해결하였으나 시간측정이 오래걸리는 것 같아 꺼림직해서 sort를 사용하지 않고 했다. (강의 모범답안) 유의미한 시간차이가 있다. 배열의 메소드를 무분별하게 사용하면 안될 것 같다. 참고자료 패스트캠퍼스 - JavaScript 코딩테스트 131개 예재 & CS지식으로 끝내기
🔅알고리즘 난이도 Lv. 1 🌈문제풀이 아이디어는 간단하다. 입력받은 n개의 행 만큼 별을 +1 씩 증가시키면서 출력하는 것 이다. // CASE 01 let fs = require('fs'); let input = fs.readFileSync('/dev/stdin').toString().split('\n'); n = Number(input[0]); let star = ''; for(let i = 1; i
🔅알고리즘 난이도 Lv. 1 🌈문제풀이 아이디어는 입력받는 현재시각을 분으로 만들어서 요리하는 데 필요한 시간을 더하면 된다. 그리고 하루는 1440분 이므로 %을 이용하여 00:00 ~ 23:59 사이의 시간이라는 조건을 만족시킨다. 그리고 시 분 형태로 바꾸어서 출력한다. 다른 방법은 위 아이디어의 정확히 반대이다. 요리하는 데 필요한 시간을 시 분 형태로 바꾼다. 60의 몫과 60의 나머지를 이용하면 시 분을 구할 수 있다. 그리고 현재시각과 요리하는데 필요한 시각을 더하여 출력한다. let fs = require('fs'); let input = fs.readFileSync('/dev/stdin').toString().split('\n'); let [oven_hour, oven_minute] = ..