본문 바로가기

javascript114

Programmers 코딩테스트 연습 - 구명보트 (JavaScript) Programmers 프로그래머스 코딩테스트 연습 - 구명보트 (JavaScript) Programmers(프로그래머스)의 코딩테스트 연습문제 Level 2 중, 구명보트 문제를 JavaScript로 풀어보도록 하겠습니다. 문제 링크 : programmers.co.kr/learn/courses/30/lessons/42885 코딩테스트 연습 - 구명보트 무인도에 갇힌 사람들을 구명보트를 이용하여 구출하려고 합니다. 구명보트는 작아서 한 번에 최대 2명씩 밖에 탈 수 없고, 무게 제한도 있습니다. 예를 들어, 사람들의 몸무게가 [70kg, 50kg, 80kg, 5 programmers.co.kr 문제 문제 설명 무인도에 갇힌 사람들을 구명보트를 이용하여 구출하려고 합니다. 구명보트.. 2021. 1. 20.
Programmers 코딩테스트 연습 - 3진법 뒤집기 (JavaScript) Programmers 프로그래머스 코딩테스트 연습 - 3진법 뒤집기 (JavaScript) Programmers(프로그래머스)의 코딩테스트 연습문제 Level 1 월간 코드 챌린지 시즌 1 중, 3진법 뒤집기 문제를 JavaScript로 풀어보도록 하겠습니다. 문제 문제 설명 자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해주세요. 제한사항 n은 1 이상 100,000,000 이하인 자연수입니다. 입출력 예 nresult 45 7 125 229 입출력 예 설명 입출력 예 #1 답을 도출하는 과정은 다음과 같습니다. n (10진법)n (3진법)앞뒤 반전(3진법)10진법으로 표현 45 1200 00.. 2021. 1. 19.
Programmers 코딩테스트 연습 - 내적 (JavaScript) Programmers 프로그래머스 코딩테스트 연습 - 내적 (JavaScript) Programmers(프로그래머스)의 코딩테스트 연습문제 Level 1 월간 코드 챌린지 시즌 1 중 내적 문제를 JavaScript로 풀어보도록 하겠습니다. 문제 문제 설명 길이가 같은 두 1차원 정수 배열 a, b가 매개변수로 주어집니다. a와 b의 내적을 return 하도록 solution 함수를 완성해주세요. 이때, a와 b의 내적은 a[0]*b[0] + a[1]*b[1] + ... + a[n-1]*b[n-1] 입니다. (n은 a, b의 길이) 제한사항 a, b의 길이는 1 이상 1,000 이하입니다. a, b의 모든 수는 -1,000 이상 1,000 이하입니다. 입출력 예 a b result [1,2,3,4] [-.. 2021. 1. 18.
Programmers 코딩테스트 연습 - 가장 큰 수 (JavaScript) Programmers 프로그래머스 코딩테스트 연습 - 가장 큰 수 (JavaScript) Programmers(프로그래머스)의 코딩테스트 연습문제 Level 2 중 가장 큰 수 문제를 JavaScript로 풀어보도록 하겠습니다. 문제 설명 0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰 수는 6210입니다. 0 또는 양의 정수가 담긴 배열 numbers가 매개변수로 주어질 때, 순서를 재배치하여 만들 수 있는 가장 큰 수를 문자열로 바꾸어 return 하도록 solution 함수를 작성해주세요. 제한 사항 n.. 2020. 10. 17.
JavaScript URL Parameter parsing (파라미터 가져오기) JavaScript URL Parameter parsing (파라미터 가져오기) JavaScript 에서는 URL Parameter를 파싱해주는 기본적으로 제공하는 함수가 없어서 직접 만들어서 사용해야 합니다. 자주 쓰이는 것 같아 정리하고자 합니다. function getURLParams(url) { var result = {}; url.replace(/[?&]{1}([^=&#]+)=([^&#]*)/g, function(s, k, v) { result[k] = decodeURIComponent(v); }); return result; } 많은 방법이 있겠지만 저는 정규식을 사용한 방법을 사용하고 있습니다. 간단하게 설명을 해드리자면, 인자값으로 받은 url 변수의 문자열에서, '?'혹은 .. 2020. 10. 4.
JavaScript 날짜와 날짜 사이 모든 날짜 구하기 JavaScript 날짜와 날짜 사이 모든 날짜 구하기 어느 날짜와 또 다른 어느 날짜 사이에 있는 모든 날짜들을 구하는 방법을 알려드리도록 하겠습니다. yyyy-mm-dd 형식의 문자열로 시작날짜와 마지막 날짜를 받아, 시작 날짜와 마지막 날짜 사이의 모든 날짜를 yyyy-mm-dd 형식의 문자로 배열에 담아 반환하는 함수 function getDatesStartToLast(startDate, lastDate) { var regex = RegExp(/^\d{4}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])$/); if(!(regex.test(startDate) && regex.test(lastDate))) return "Not Date Format"; var result =.. 2020. 9. 30.
Date Format(날짜 형식) 정규표현식 Date Format(날짜 형식) 정규표현식 날짜 포맷의 정규식을 자주 사용하는 것 같아 정리해보도록 하겠습니다. /^\d{4}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])$/ 위 정규식은 년도는 숫자 4자리만, 월은 자릿수를 맞춰주기 위해 1~9월 사이라면 0X월 형식만, 10~12월 사이라면 10, 11, 12 월만, 일은 자릿수를 맞춰주기 위해 1~9일 사이라면 0X일 형식만, 10일 이상은 앞자리는 1에서 3까지만 가능하며, 30일 이상은 30, 31 만 가능하도록하고, 년도, 월, 일 사이에 '-' 문자로 구분하도록 작성한 정규식 입니다. JavaScript를 사용해 테스트 해보도록 하겠습니다. var regex = RegExp(/^\d{4}-(0[1-9]|1[012.. 2020. 9. 25.
JavaScript 날짜 계산 방법(어제, 한달 전, 일년 전, 내일, 한달 후, 일년 후 구하기, 날짜 더하기, 날짜 빼기) JavaScript 날짜 계산 방법(어제, 한달 전, 일년 전, 내일, 한달 후, 일년 후 구하기, 날짜 더하기, 날짜 빼기) JavaScript에서 날짜를 계산하는 방법을 알려드리도록 하겠습니다. 몇일 전, 몇일 후 날짜 계산하는 방법 var now = new Date();// 현재 날짜 및 시간 console.log("현재 : ", now); var yesterday = new Date(now.setDate(now.getDate() - 1));// 어제 console.log("어제 : ", yesterday); var now = new Date();// 현재 날짜 및 시간 console.log("현재 : ", now); var tomorrow = new Date(now.setDate(now.getDa.. 2020. 9. 24.
JavaScript 현재 날짜, 시간 가져오기 (년, 월, 일, 시, 분, 초 구하기) JavaScript 현재 날짜, 시간 가져오기 (년, 월, 일, 시, 분, 초 구하기) JavaScript에서 현재 날짜, 시간을 가져오는 방법을 알려드리도록 하겠습니다. 현재 날짜, 시간 구하기 var now = new Date();// 현재 날짜 및 시간 console.log("현재 : ", now); new Date()로 현재 날짜와 시간을 담은 Date 객체를 구할 수 있습니다. new Date("2020-10-23")과 같이 사용해서 원하는 날짜의 Date 객체를 얻을 수도 있습니다. 연도 구하기 var now = new Date();// 현재 날짜 및 시간 var year = now.getFullYear();// 연도 console.log("연도 : ", year); Date 객체의 getFu.. 2020. 9. 24.
Programmers 월간 코드 챌린지 시즌1 - 두 개 뽑아서 더하기 (JavaScript) Programmers 월간 코드 챌린지 시즌1 - 두 개 뽑아서 더하기 (JavaScript) Programmers(프로그래머스)의 코딩테스트 연습문제 Level 1 중 월간 코드 챌린지 시즌1 문제인 두 개 뽑아서 더하기 문제를 JavaScript를 사용하여 문제를 풀어보도록 하겠습니다. 문제 설명 정수 배열 numbers가 주어집니다. numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return 하도록 solution 함수를 완성해주세요. 제한사항 numbers의 길이는 2 이상 100 이하입니다. numbers의 모든 수는 0 이상 100 이하입니다. 입출력 예 numbers result [2,1,3,4,1] [2,3,4,5,6.. 2020. 9. 17.
Programmers 코딩테스트 연습 - 약수의 합 (JavaScript) Programmers 코딩테스트 연습 - 약수의 합 (JavaScript) Programmers(프로그래머스)의 코딩테스트 연습문제 Level 1 중 약수의 합 문제를 JavaScript를 사용하여 문제를 풀어보도록 하겠습니다. 문제 설명 정수 n을 입력받아 n의 약수를 모두 더한 값을 리턴하는 함수, solution을 완성해주세요. 제한 사항 n은 0 이상 3000이하인 정수입니다. 입출력 예 n return 12 28 5 6 입출력 예 설명 입출력 예 #1 12의 약수는 1, 2, 3, 4, 6, 12입니다. 이를 모두 더하면 28입니다. 입출력 예 #2 5의 약수는 1, 5입니다. 이를 모두 더하면 6입니다. 작성한 답 solution.js function solution(n) { var answe.. 2020. 9. 16.
Programmers 코딩테스트 연습 - 스킬트리 (JavaScript) Programmers 코딩테스트 연습 - 스킬트리 (JavaScript) Programmers(프로그래머스)의 코딩테스트 연습문제 Level 2 중 스킬트리 문제를 JavaScript를 사용하여 문제를 풀어보도록 하겠습니다. 문제 설명 선행 스킬이란 어떤 스킬을 배우기 전에 먼저 배워야 하는 스킬을 뜻합니다. 예를 들어 선행 스킬 순서가 스파크 → 라이트닝 볼트 → 썬더일때, 썬더를 배우려면 먼저 라이트닝 볼트를 배워야 하고, 라이트닝 볼트를 배우려면 먼저 스파크를 배워야 합니다. 위 순서에 없는 다른 스킬(힐링 등)은 순서에 상관없이 배울 수 있습니다. 따라서 스파크 → 힐링 → 라이트닝 볼트 → 썬더와 같은 스킬트리는 가능하지만, 썬더 → 스파크나 라이트닝 볼트 → 스파크 → 힐링 → 썬더와 같은 스.. 2020. 9. 15.