[자바스크립트/알고리즘] 프로그래머스- 문자열 내 마음대로 정렬하기
알고리즘/프로그래머스 2021. 1. 23. 17:08

문제 문자열로 구성된 리스트 strings와, 정수 n이 주어졌을 때, 각 문자열의 인덱스 n번째 글자를 기준으로 오름차순 정렬하려 합니다. 예를 들어 strings가 ["sun", "bed", "car"]이고 n이 1이면 각 단어의 인덱스 1의 문자 "u", "e", "a"로 strings를 정렬합니다. 제한 조건 strings는 길이 1 이상, 50이하인 배열입니다. strings의 원소는 소문자 알파벳으로 이루어져 있습니다. strings의 원소는 길이 1 이상, 100이하인 문자열입니다. 모든 strings의 원소의 길이는 n보다 큽니다. 인덱스 1의 문자가 같은 문자열이 여럿 일 경우, 사전순으로 앞선 문자열이 앞쪽에 위치합니다. 나의 풀이 function solution(strings, n) ..

[알고리즘/자바스크립트] 프로그래머스-K번째수 (정렬)
알고리즘/프로그래머스 2021. 1. 23. 11:51

문제 배열 array의 i번째 숫자부터 j번째 숫자까지 자르고 정렬했을 때, k번째에 있는 수를 구하려 합니다. 예를 들어 array가 [1, 5, 2, 6, 3, 7, 4], i = 2, j = 5, k = 3이라면 array의 2번째부터 5번째까지 자르면 [5, 2, 6, 3]입니다. 1에서 나온 배열을 정렬하면 [2, 3, 5, 6]입니다. 2에서 나온 배열의 3번째 숫자는 5입니다. 배열 array, [i, j, k]를 원소로 가진 2차원 배열 commands가 매개변수로 주어질 때, commands의 모든 원소에 대해 앞서 설명한 연산을 적용했을 때 나온 결과를 배열에 담아 return 하도록 solution 함수를 작성해주세요. 제한사항 array의 길이는 1 이상 100 이하입니다. arra..

[자바스크립트/알고리즘] 프로그래머스-이상한 문자 만들기
알고리즘/프로그래머스 2021. 1. 22. 12:26

문제 문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을 리턴하는 함수, solution을 완성하세요. 제한 사항 문자열 전체의 짝/홀수 인덱스가 아니라, 단어(공백을 기준)별로 짝/홀수 인덱스를 판단해야합니다. 첫 번째 글자는 0번째 인덱스로 보아 짝수번째 알파벳으로 처리해야 합니다. 입력: try hello world => 출력: TrY HeLlO WoRlD [나의 풀이] function solution(s) { return s.split(" ").map(word=>{ let result = ''; for(let i = 0; i

[자바스크립트/알고리즘] 프로그래머스-자연수 뒤집어 배열로 만들기
알고리즘/프로그래머스 2021. 1. 22. 00:50

문제 자연수 n을 뒤집어 각 자리 숫자를 원소로 가지는 배열 형태로 리턴해주세요. 예를들어 n이 12345이면 [5,4,3,2,1]을 리턴합니다. 제한 조건 n은 10,000,000,000이하인 자연수입니다. 나의 풀이 function solution(n) { return String(n).split("").reverse().map(n=>Number(n)); }

[자바스크립트/알고리즘] 프로그래머스-핸드폰 번호 가리기
알고리즘/프로그래머스 2021. 1. 22. 00:00

문제 프로그래머스 모바일은 개인정보 보호를 위해 고지서를 보낼 때 고객들의 전화번호의 일부를 가립니다. 전화번호가 문자열 phone_number로 주어졌을 때, 전화번호의 뒷 4자리를 제외한 나머지 숫자를 전부 *으로 가린 문자열을 리턴하는 함수, solution을 완성해주세요. 제한 조건 s는 길이 4 이상, 20이하인 문자열입니다. 나의 풀이 예시) '01033334444' -> '*******4444' function solution(phone_number) { var answer = ''; answer = phone_number.slice(0,phone_number.length-4); for(let i = 0; i

[자바스크립트/알고리즘] 프로그래머스-수박수박수박수박수박수?
알고리즘/프로그래머스 2021. 1. 21. 22:31

문제 길이가 n이고, 수박수박수박수....와 같은 패턴을 유지하는 문자열을 리턴하는 함수, solution을 완성하세요. 예를들어 n이 4이면 수박수박을 리턴하고 3이라면 수박수를 리턴하면 됩니다. 제한 조건 n은 길이 10,000이하인 자연수입니다. 나의 풀이 function solution(n) { return "수박".repeat(n).substring(0,n); } n번 반복하며 입력된 값(n)까지 자른다

[자바스크립트/알고리즘] 프로그래머스- 나누어 떨어지는 숫자 배열
알고리즘/프로그래머스 2021. 1. 21. 22:15

문제 array의 각 element 중 divisor로 나누어 떨어지는 값을 오름차순으로 정렬한 배열을 반환하는 함수, solution을 작성해주세요. divisor로 나누어 떨어지는 element가 하나도 없다면 배열에 -1을 담아 반환하세요. 제한사항 arr은 자연수를 담은 배열입니다. 정수 i, j에 대해 i ≠ j 이면 arr[i] ≠ arr[j] 입니다. divisor는 자연수입니다. array는 길이 1 이상인 배열입니다. 나의 풀이 function solution(arr, divisor) { let divided = 0; arr.forEach(e=>{ if(e % divisor == 0){ divided++; } }) if(divided == 0) return [-1]; return arr...

[자바스크립트/알고리즘] 프로그래머스 - 가운데 글자 가져오기
알고리즘/프로그래머스 2021. 1. 21. 20:32

문제 단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다. 제한사항 s는 길이가 1 이상, 100이하인 스트링입니다. 예시: s가 "abcde"일 때, 반환값은 "c" s가 "qwer"일 때, 반환값은 "we" 나의 풀이 function solution(s) { if(s.length % 2 == 1){ return s.substr(s.length/2,1); } else{ return s.substr(s.length/2-1, 2); } }

[자바스크립트/알고리즘] 공백을 붙임표(하이픈)로 바꾸기 (정규식)
알고리즘/FreeCodeCamp 2021. 1. 19. 11:59

입력할 때 단어의 앞글자는 대문자로 시작, 나머지는 소문자. 출력은 모두 소문자로 변경되어야 함 입력: iLikeApples or 입력: i_Like_Apples (두 가지 입력 모두 출력 같음) 출력: i-like-apples function spinalCase(str) { return str.replace(/([a-z])([A-Z])/g, "$1 $2").toLowerCase().replace(/\s|_/g,"-"); } spinalCase("iLikeApples"); [코드 설명] str.replace(/([a-z])([A-Z])/g, "$1 $2") : 소문자 다음에 대문자가 오는 경우 그 사이(소문자와 대문자 사이)에 공백을 추가한다. .toLowerCase() : 소문자로 바꾼다. .repla..

[자바스크립트/알고리즘] 특정 문자열로 끝나는지 확인 / 정규식, endsWith() 이용
알고리즘/FreeCodeCamp 2021. 1. 18. 23:07

문제 특정 문자열로 끝나면 true, 아니면 false 반환 나의 풀이 입력: "dogs, cats, and ducks", "ducks" 결과: true function confirmEnding(str, target) { let result = new RegExp(target+"$","i"); return result.test(str); } confirmEnding("dogs, cats, and ducks", "ducks"); 간단하게 endsWith()로 문제를 해결할 수도 있다. [endsWith()] 입력과 결과는 위와 동일하다. 사용방법 function confirmEnding(str, target) { return str.endsWith(target); } (문제 출처:www.freecodeca..