자바스크립트(65)
-
[백준] 4673. 셀프 넘버 (자바스크립트/node.js/javascript/알고리즘/코딩테스트)
[백준] 4673. 셀프 넘버 시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율 1 초 256 MB 73530 36934 29601 50.279% 문제 셀프 넘버는 1949년 인도 수학자 D.R. Kaprekar가 이름 붙였다. 양의 정수 n에 대해서 d(n)을 n과 n의 각 자리수를 더하는 함수라고 정의하자. 예를 들어, d(75) = 75+7+5 = 87이다. 양의 정수 n이 주어졌을 때, 이 수를 시작해서 n, d(n), d(d(n)), d(d(d(n))), ...과 같은 무한 수열을 만들 수 있다. 예를 들어, 33으로 시작한다면 다음 수는 33 + 3 + 3 = 39이고, 그 다음 수는 39 + 3 + 9 = 51, 다음 수는 51 + 5 + 1 = 57이다. 이런식으로 다음과 같은 수열을..
2021.04.04 -
[백준]백준에서 node.js 입출력 방법 정리(백준/자바스크립트/코딩테스트/알고리즘)
안녕하세요. 이번 시간에는 백준에서 node.js 입출력 방법에 대해 알아보겠습니다. 자바스크립트로 코딩테스트를 준비할 경우, 백준에서는 node.js를 선택하여야 합니다. 그런데 node.js가 좀 번거롭습니다. 프로그래머스에서는 입출력은 상관 없이 함수 하나만 작성하면 되었는데 백준에서는 입력과 출력을 직접 해주어야 합니다. 그럼에도 불구하고 프로그래머스보다 백준이 문제가 훨씬 많으므로 node.js 입출력 방법을 정리해보도록 하겠습니다. 백준에서 node.js 입출력 방법으로 사용하는 방법은 크게 두 가지가 있습니다. 아직 어떤 차이가 있는지는 잘 모르나, fs 모듈의 경우 코드가 간단하고 다른 블로거 분들의 말을 보니 readline으로 시간초과가 나올 때 사용한다고 합니다. 저는 vscode에서..
2021.03.29 -
[자바스크립트 자료구조] 힙(heap) - 연습문제
일련의 숫자에서 중앙값 찾기 중앙값이란 어떤 배열을 정렬했을 때 정 가운데에 위치하는 값 원소의 개수가 홀수인 경우: 가장 중앙에 위치한 원소가 중앙 값((전체 개수 + 1) / 2 번째 원소) [1, 2, 3]의 배열에서는 2가 중앙값 원소의 개수가 짝수인 경우: 가운데 두 원소의 평균이 중앙값 [1, 2, 3, 4]에서는 2와 3의 평균인 2.5가 중앙값 중앙값을 찾을 때 그냥 최소힙이나 최대힙 둘중 하나로 만들고 중앙에 해당하는 인덱스에 있는 값을 반환하면 되겠지만 데이터가 지속적으로 추가/삭제되고 있는 상황에서 중앙값을 찾으려면 중앙값을 찾을때마다 배열 전체에 대한 정렬을 시도하므로 시간 낭비임 🌟🌟🌟하나의 최소 힙과 최대 힙을 만들면 중간 값을 얻는 것은 단지 O(1) 시간 밖에 걸리지 않음 그..
2021.03.25 -
[자바스크립트 자료구조] 힙(Heap) - (1) 최소힙, 최대힙 구현
힙(Heap) 힙이란? 최댓값이나 최솟값을 찾아내는 연산을 빠르게 하기 위해 고안된 완전이진트리를 기본으로 한 자료구조 힙에는 최소힙과 최대힙이 있음 최소힙 작은 값을 항상 트리의 위에 있게 해서 트리의 루트에는 가장 작은 값이 오도록 함 최대힙 가장 큰 값이 맨 위에 오도록 함. 모든 노드는 자기 부모 노드가 자기보다 큰 값을 가지고 있음 힙에 데이터를 삽입하고 값을 꺼내오는 방법 최소힙에 데이터를 삽입하는 방법 저런 트리가 있다고 하자 1을 삽입하려고 할 때 완전이진트리의 요건을 만족시키기위해 저 자리에 삽입 자신의 값과 자신의 부모노드값을 비교하여 자신의 값이 더 작으면 자리를 바꿈 3번의 과정을 자신의 값이 부모노드값보다 작을때까지 혹은 루트에 도착할 때까지 반복한다. 이 작업은 밸런스가 맞춰져있..
2021.03.24 -
[유튜브 클론코딩] 10.4 API Adding a Comment part.3
10.4 API Adding a Comment part.3 🍒이번시간에 할 것 댓글 추가를 페이크(fake)로 할 것이다. 무슨 말이냐면, 누군가 댓글을 달면 덧글 수가 하나 추가된 거처럼 보이고, 방금 작성한 덧글이 보이도록 할 것이다. (그러니까 지금 현재 덧글을 작성하면 새로고침을 해야 반영이 되니까 새로고침하지 않고도 바로 반영이 된 것처럼 보이고 싶어서 그러는 것이다 → 리얼타임처럼 보이고 싶어서 페이크를 하는 것) 🍒 axios의 status code를 listen할 거고 status code가 200이면 그때 댓글이 추가됐다는 거니까 즉 댓글을 페이크로 달 것이다. addComment 함수 만들기(addComment.js) const addComment = (comment) => { cons..
2021.03.23 -
[유튜브 클론코딩] 10.3 API Adding a Comment part.2
10.3 API Adding a Comment part.2 🍓이번시간에 할 것 덧글(Comment) 기능의 프론트엔드부분을 구현할 것이다. comment를 하나 만들어보자 이번에는 Ajax로 보내보자 videoDetail.pug에서 id 추가하기 .video__comments if video.comments.length === 1 span.video__comment-number 1 comment else span.video__comment-number #{video.comments.length} comments form.add__comment#jsAddComment input(type="text", placeholder="Add a comment", name="comment") ul.video__comm..
2021.03.23