Javascript(68)
-
[JS] 프로그래머스 - 여행 경로
문제 설명 주어진 항공권을 모두 이용하여 여행경로를 짜려고 합니다. 항상 ICN 공항에서 출발합니다. 항공권 정보가 담긴 2차원 배열 tickets가 매개변수로 주어질 때, 방문하는 공항 경로를 배열에 담아 return 하도록 solution 함수를 작성해 주세요. 제한 사항 모든 공항은 알파벳 대문자 3글자로 이루어집니다. 주어진 공항 수는 3개 이상 10,000개 이하입니다. tickets의 각 행 [a, b]는 a 공항에서 b 공항으로 가는 항공권이 있다는 의미입니다. 주어진 항공권은 모두 사용해야 합니다. 만일 가능한 경로가 2개 이상일 경우 알파벳 순서가 앞서는 경로를 return 합니다. 모든 도시를 방문할 수 없는 경우는 주어지지 않습니다. 입출력 예 tickets return [["ICN"..
2020.10.07 -
[JS] 프로그래머스 - 입국심사
문제 설명 n명이 입국심사를 위해 줄을 서서 기다리고 있습니다. 각 입국심사대에 있는 심사관마다 심사하는데 걸리는 시간은 다릅니다. 처음에 모든 심사대는 비어있습니다. 한 심사대에서는 동시에 한 명만 심사를 할 수 있습니다. 가장 앞에 서 있는 사람은 비어 있는 심사대로 가서 심사를 받을 수 있습니다. 하지만 더 빨리 끝나는 심사대가 있으면 기다렸다가 그곳으로 가서 심사를 받을 수도 있습니다. 모든 사람이 심사를 받는데 걸리는 시간을 최소로 하고 싶습니다. 입국심사를 기다리는 사람 수 n, 각 심사관이 한 명을 심사하는데 걸리는 시간이 담긴 배열 times가 매개변수로 주어질 때, 모든 사람이 심사를 받는데 걸리는 시간의 최솟값을 return 하도록 solution 함수를 작성해주세요. 제한 사항 입국심..
2020.10.04 -
[JS] Date() 객체를 이용한 시간 차이 구하기
시간 차이 구하기 최근에 리액트, 리덕스 강의를 들었다. 강의를 내껄로 만들기 위해서 나는 항상 강의를 다시 참조하여 무엇인가를 만드는 습관을 들여놨는데, 이번에는 게시판을 간단하게 만들기로 했다. 게시판은 흔히 글 번호, 제목, 글쓴이, 날짜를 기입한다. 그런데 요즘 게시판은 날짜를 기입할 때 2020-01-02 식이 아닌 (현재시간) - (글이 업로드 된 시간)을 뺀 시간 차이를 기입한다. 대표적인 예시가 유튜브다. 유튜브 동영상을, 댓글을 업로드했을 때 업로드된 시간란을 보면 3초 전, 1분 전 이런식으로 출력되어있다. 따라서 나도 업로드된 날짜를 유튜브 방식처럼 출력하고 싶었다. 방법은 어렵진 않았으나, 년도를 계산할 경우 e-표기법이 뜨는 변수가 발생했다. 밀리미터 단위를 초, 분, ... 년도..
2020.10.03 -
[JS] 프로그래머스 - 이중 우선순위 큐
문제설명 이중 우선순위 큐는 다음 연산을 할 수 있는 자료구조를 말합니다. 명령어 수신 탑(높이) I 숫자 큐에 주어진 숫자를 삽입 D 1 큐의 최댓값 삭제 D -1 큐의 최솟값 삭제 이중 우선순위 큐가 할 연산 operations가 매개변수로 주어질 때, 모든 연산을 처리한 후 큐가 비어있으면 [0,0] 비어있지 않으면 [최댓값, 최솟값]을 return 하도록 solution 함수를 구현해주세요. 제한사항 Operations는 길이가 1 이상 1,000,000 이하인 문자열 배열입니다. Operations의 원소는 큐가 수행할 연산을 나타냅니다. 원소는 "명령어 데이터" 형식으로 주어집니다. - 최댓값/최솟값을 삭제하는 연산에서 최댓값/최솟값이 둘 이상인 경우, 하나만 삭제합니다. 빈 큐에 데이터를 삭..
2020.10.01 -
[JS] 프로그래머스 - 가장 먼 노드
문제 설명 n개의 노드가 있는 그래프가 있습니다. 각 노드는 1부터 n까지 번호가 적혀있습니다. 1번 노드에서 가장 멀리 떨어진 노드의 갯수를 구하려고 합니다. 가장 멀리 떨어진 노드란 최단경로로 이동했을 때 간선의 개수가 가장 많은 노드들을 의미합니다. 노드의 개수 n, 간선에 대한 정보가 담긴 2차원 배열 vertex가 매개변수로 주어질 때, 1번 노드로부터 가장 멀리 떨어진 노드가 몇 개인지를 return 하도록 solution 함수를 작성해주세요. 제한 사항 노드의 개수 n은 2 이상 20,000 이하입니다. 간선은 양방향이며 총 1개 이상 50,000개 이하의 간선이 있습니다. vertex 배열 각 행 [a,b]는 a번 노드와 b번 노드 사이에 간선이 있다는 의미 입니다. 입출력 예 n vert..
2020.09.29 -
[JS] 피셔 예이츠 셔플(Fisher–Yates Shuffle) 알고리즘
1. 셔플 알고리즘(shuffle) 본론으로 돌아와서, 자바스크립트에서는 랜덤 정렬을 두 가지 방법을 이용해서 구현할 수 있는데, 첫 번째는 sort() 메서드를 이용하는 방법이고, 두 번째는 피셔 예이츠 셔플(Fisher-Yates Suffle) 알고리즘을 이용하는 방법이다. 2. Sort() 를 이용하는 방법 sort() 메서드는 음수 값을 리턴하면 내림차순으로 정렬되고, 양수 값을 리턴하면 오름차순으로 정렬된다. 그래서 이를 랜덤으로 정렬시키기 위해서는 양수 또는 음수 값이 나오는 선택지를 줘야한다. const arr = [1, 2, 3, 4, 5]; arr.sort(() => Math.random() - 0.5); 위 예제를 보면 Math.random()은 곱한 값이 없으므로 0.xxxxxxxx의..
2020.08.05