The journey to becoming a developer

My future is created by what I do today, not tomorrow.

Total 22

프로그래머스 레벨 2 : [1차] 캐시 (자바스크립트)

Description cache.includes(city); if (cacheSize === 0) return MISS * cities.length; cities.forEach(city => { city = city.toUpperCase(); if (cacheHit(city)) { time += HIT; cache.splice(cache.indexOf(city), 1); } else { time += MISS; if (cache.length >= cacheSize) cache.shift(); } cache.push(city); }); return time; } 실행 시간은 0, 캐시는 빈 배열로 설정하였다. 하드 코딩을 피하고 싶어서 HIT, MISS라고 각각의 실행시간에 이름을 붙여 주었다. cache..

[프로그래머스 Level 1] 3진법 뒤집기 (자바스크립트)

Description 자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해주세요. Constraints n은 1 이상 100,000,000 이하인 자연수입니다. My Solution // My solution 1 function solution(n) { return parseInt(n.toString(3).split('').reverse().join(''), 3); } // My solution 2 function solution(n) { return parseInt([...n.toString(3)].reverse().join(''), 3); } toString을 이용해 n을 3진법으로 변환한 후,..

[프로그래머스 Level 1] 2016년 (자바스크립트)

Description 2016년 1월 1일은 금요일입니다. 2016년 a월 b일은 무슨 요일일까요? 두 수 a ,b를 입력받아 2016년 a월 b일이 무슨 요일인지 리턴하는 함수, solution을 완성하세요. 요일의 이름은 일요일부터 토요일까지 각각 SUN,MON,TUE,WED,THU,FRI,SAT 입니다. 예를 들어 a=5, b=24라면 5월 24일은 화요일이므로 문자열 "TUE"를 반환하세요. Constraints 2016년은 윤년입니다. 2016년 a월 b일은 실제로 있는 날입니다. (13월 26일이나 2월 45일같은 날짜는 주어지지 않습니다) My Solution function solution(a, b) { const week = ['SUN', 'MON', 'TUE', 'WED', 'THU',..

[프로그래머스 Level 1] 핸드폰 번호 가리기 (자바스크립트)

Description 프로그래머스 모바일은 개인정보 보호를 위해 고지서를 보낼 때 고객들의 전화번호의 일부를 가립니다. 전화번호가 문자열 phone_number로 주어졌을 때, 전화번호의 뒷 4자리를 제외한 나머지 숫자를 전부 *으로 가린 문자열을 리턴하는 함수, solution을 완성해주세요. Constraints s는 길이 4 이상, 20이하인 문자열입니다. My Solution function solution(phone_number) { return '*'.repeat(phone_number.length - 4) + phone_number.slice(-4); } 휴대폰 번호 길이에서 4f를 뺀 만큼 *을 만들어주고, 휴대폰 번호에서 마지막 4자리를 추출하기 위해 slice(-4)를 사용한다. sli..

[프로그래머스 Level 1] 나머지가 1이 되는 수 찾기 (자바스크립트)

Description 자연수 n이 매개변수로 주어집니다. n을 x로 나눈 나머지가 1이 되도록 하는 가장 작은 자연수 x를 return 하도록 solution 함수를 완성해주세요. 답이 항상 존재함은 증명될 수 있습니다. Constraints 3 ≤ n ≤ 1,000,000 My Solution function solution(n) { for (let i = 2; i < n; i++) { if (n % i === 1) return i; } } for문의 초기값을 let i = 2로 지정하였다. 제한 조건에서 n은 3 이상이므로, 나누는 수(i)의 최솟값이 1이 될 순 없기 때문에 1이 아닌 2부터 시작하였다. Other's Solutions function solution(n) { let answer =..

[프로그래머스 Level 1] 가운데 글자 가져오기 (자바스크립트)

Description 단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다. Constraints s는 길이가 1 이상, 100이하인 스트링입니다. My Solutions (1) String에도 index를 활용할 수 있다는 것을 활용한 풀이 function solution(s) { return s.length % 2 ? s[Math.floor(s.length / 2)] : s[s.length / 2 - 1] + s[s.length / 2]; } 문자열은 유사 배열 객체이면서 이터러블이므로 배열과 유사하게 각 문자에 접근할 수 있다. 유사 배열 객체란, 마치 배열처럼 인덱스로 프로퍼티 값에 접근할 수 있고 length 프로퍼티를..

[프로그래머스 Level 1] 나누어 떨어지는 숫자 배열 (자바스크립트)

Description array의 각 element 중 divisor로 나누어 떨어지는 값을 오름차순으로 정렬한 배열을 반환하는 함수, solution을 작성해주세요.divisor로 나누어 떨어지는 element가 하나도 없다면 배열에 -1을 담아 반환하세요. Constraints arr은 자연수를 담은 배열입니다. 정수 i, j에 대해 i ≠ j 이면 arr[i] ≠ arr[j] 입니다. divisor는 자연수입니다. array는 길이 1 이상인 배열입니다. My Solution (1) filter 사용 function solution(arr, divisor) { const newarr = arr.filter(v => v % divisor === 0); return newarr.length === 0 ..

[프로그래머스 Level 1] 두 정수 사이의 합 (자바스크립트)

Description 두 정수 a, b가 주어졌을 때 a와 b 사이에 속한 모든 정수의 합을 리턴하는 함수, solution을 완성하세요.예를 들어 a = 3, b = 5인 경우, 3 + 4 + 5 = 12이므로 12를 리턴합니다. Constraints a와 b가 같은 경우는 둘 중 아무 수나 리턴하세요. a와 b는 -10,000,000 이상 10,000,000 이하인 정수입니다. a와 b의 대소관계는 정해져있지 않습니다. My Solution function solution(a, b) { let sum = 0; if (a

[프로그래머스 Level 1] 문자열 내림차순으로 정렬하기 (자바스크립트)

Description 문자열 s에 나타나는 문자를 큰것부터 작은 순으로 정렬해 새로운 문자열을 리턴하는 함수, solution을 완성해주세요. s는 영문 대소문자로만 구성되어 있으며, 대문자는 소문자보다 작은 것으로 간주합니다. Constraints str은 길이 1 이상인 문자열입니다. My Solution function solution(s) { return s.split('').sort().reverse().join(''); } 각종 메서드를 활용하여 간단하게 풀 수 있었다. Other's Solution function solution(s) { return s .split('') .sort((a, b) => { if (a > b) return -1; if (b > a) return 1; retur..

[프로그래머스 Level 1] 문자열 다루기 기본 (자바스크립트)

Description 문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있는지 확인해주는 함수, solution을 완성하세요. 예를 들어 s가 "a234"이면 False를 리턴하고 "1234"라면 True를 리턴하면 됩니다. Constraints s는 길이 1 이상, 길이 8 이하인 문자열입니다. My Solution function solution(s) { if (s.length === 4 || s.length === 6) { if (s.includes('e')) return false; return !isNaN(s); } else return false; } 가장 처음의 조건으로는 문자열의 길이가 4 또는 6이어야 하고, 그렇지 않으면 false를 리턴한다. 문자열의 길이 조건을 통과했다면, 그 문..

1 2 3