전체 글196 [JavaScript] 0 떼기 문제정수로 이루어진 문자열 n_str이 매개변수로 주어진다. n_str의 가장 왼쪽에 처음으로 등장하는 수가 0들을 뗀 문자열을 반환하는 함수를 작성해라. 예시n_strresult"0010""10""854020""854020" 나의 풀이function solution(n_str) { const arr = n_str.split(""); while( true ) { // 배열의 첫 번째 값이 "0"이 아닌 경우 break if( arr[0] !== "0" ) break; // 배열의 첫 번째 값이 "0"인 경우 shift() arr.shift(); } return arr.join("");} 다른 풀이const solution = (str) => String.. 🧬알고리즘/Programmers 2024. 6. 18. [JavaScript] 문자열 묶기 문제문자열 배열 strArr가 매개변수로 주어진다. strArr의 원소들을 길이가 같은 문자열들끼리 그룹으로 묶었을 때 가장 개수가 많은 그룹의 크기를 반환하는 함수를 작성해라. 풀이function solution(strArr) { const arr = strArr.map((v) => v.length); let result = Array(Math.max(...arr)).fill(0); arr.map((v, i) => result[v-1] += 1); return Math.max(...result);} 🧬알고리즘/Programmers 2024. 6. 17. [JavaScript] 배열 비교하기 문제두 정수 배열 arr1과 arr2 매개변수로 주어진다. 이 문제에서 두 정수 배열의 대소관계를 다음과 같이 정의한다. • 두 배열의 길이가 다르다면, 배열의 길이가 긴 쪽이 더 크다. • 두 배열의 길이가 같다면 각 배열에 있는 모든 원소의 합을 비교하여 다르다면 더 큰 쪽이 큰거고, 같다면 같다. 위에서 정의한 배열의 대소관계에 대하여 arr2가 크다면 -1, arr1이 크다면 1, 같다면 0을 반환하는 함수를 작성해라. 나의 풀이function solution(arr1, arr2) { if( arr1.length === arr2.length ) { let sum1 = arr1.reduce((a, c) => a += c, 0); let sum2 = arr2.reduce((.. 🧬알고리즘/Programmers 2024. 6. 17. [JavaScript] 빈 배열에 추가, 삭제하기 문제아무 원소도 들어있지 않은 빈 배열 X가 있다. 길이가 같은 정수 배열 arr과 boolean 배열 flag가 매개변수로 주어진다. flag를 차례대로 순회하며 flag[i]가 true라면 X의 뒤에 arr[i]를 arr[i] * 2번 추가한다. flag[i]가 false라면 X에서 마지막 arr[i] 개의 원소를 제거한 X를 반환하는 함수를 작성해라. 예시arrflagresult[3, 2, 4, 1, 3][true, false, true, false, false][3, 3, 3, 3, 4, 4, 4, 4] 나의 풀이function solution(arr, flag) { const X = []; // flag 값을 순회하며 반복 flag.map((v, i) => { if( v ) .. 🧬알고리즘/Programmers 2024. 6. 15. [JavaScript] 배열의 원소만큼 추가하기 문제아무 원소도 들어있지 않은 빈 배열 X가 있다. 양의 정수 배열 arr가 매개변수로 주어질 때, arr의 앞에서 부터 순서대로 원소를 보면서 원소가 a라면 X의 맨 뒤에 a번 만큼 추가하는 일을 반복한 뒤의 X 배열을 반환하는 함수를 작성해라. 예시arrX[5, 1, 4][5, 5, 5, 5, 5, 1, 4, 4, 4, 4] 나의 풀이function solution(arr) { const X = []; arr.map((v) => { // arr 원소의 value 만큼 X 배열에 push for( let i = 0; i 다른 풀이function solution(arr) { return arr.reduce((a, c) => a.concat(Array(c).fill(c)), [].. 🧬알고리즘/Programmers 2024. 6. 14. [JavaScript] 세 개의 구분자 문제문자열 myStr이 매개변수로 주어진다. 문자열이 주어졌을 때 문자 "a", "b", "c"를 구분자로 사용해 문자열을 나눈다. "a", "b", "c"를 사용해 나눠진 문자열을 순서대로 저장한 배열을 반환하는 함수를 작성해라. 단, 구분자 사이에 다른 문자가 없는 경우에는 아무것도 저장하지 않는다. 반환하는 배열이 빈 배열이라면 ["EMPTY"] 가 반환된다. 예시myStrresult"baconlettucetomato"["onlettu", "etom", "to"]"abcd"["d"]"cabab"["EMPTY"] 나의 풀이function solution(myStr) { const tmp = []; // 문자열을 배열로 만든 후 // value가 a, b, c인 값을 " "로 push하고.. 🧬알고리즘/Programmers 2024. 6. 14. [JavaScript] 문자열 바꿔서 찾기 문제문자 "A", "B"로 이루어진 문자열 myString과 pat이 매개변수로 주어진다. myString의 "A"를 "B"로, "B"를 "A"로 바꾼 문자열의 연속되는 부분 문자열 중 pat이 있으면 1을 없으면 0을 반환하는 함수를 작성해라. 예시myString Changed 'myString' pat result"ABBAA""BAABB""AABB"1"ABAB""BABA""ABAB"0 풀이const solution = (myString, pat) => myString.split("").map((v) => v === "A" ? "B" : "A").join("").includes(pat)? 1 : 0; 🧬알고리즘/Programmers 2024. 6. 13. [JavaScript] 간단한 식 계산하기 문제문자열 binomial이 매개변수로 주어진다. binomial은 "a op b" 형태의 이항식이고 a와 b는 음이 아닌 정수, op는 '+', '-', '*' 중 하나이다. 주어진 식을 계산한 정수를 반환하는 함수를 작성해라. 예시binomialresult"43 + 12"55 나의 풀이const solution = (b) => eval(`${b.split(" ")[0]} ${b.split(" ")[1]} ${b.split(" ")[2]}`); 다른 풀이const ops = { '+': (a, b) => a + b, '-': (a, b) => a - b, '*': (a, b) => a * b,};function solution(binomial) { const [a, op, b] = bino.. 🧬알고리즘/Programmers 2024. 6. 13. [JavaScript] 특정 문자열로 끝나는 가장 긴 부분 문자열 찾기 문제문자열 myString과 pat이 매개변수로 주어진다. myString의 부분 문자열 중 pat으로 끝나는 가장 긴 부분 문자열을 반환하는 함수를 작성해라. 예시myStringpatresult"AbCdEFG""dE""AbCdE""AAAAaaaa""a""AAAAaaaa" 풀이const solution = (myString, pat) => myString.slice(0, myString.lastIndexOf(pat) + pat.length); 🧬알고리즘/Programmers 2024. 6. 13. [JavaScript] 특정한 문자를 대문자로 바꾸기 문제영소문자로 이루어진 문자열 my_string과 영소문자 1글자로 이루어진 문자열 alp가 매개변수로 주어진다. my_string에서 alp에 해당하는 모든 글자를 대문자로 바꾼 문자열을 반환하는 함수를 작성해라. 나의 풀이function solution(my_string, alp) { return my_string.split("").map((v) => v === alp ? v.toUpperCase() : v.toLowerCase()).join("");} 다른 풀이const solution = (s, a) => s.replaceAll(a, a.toUpperCase()); 🧬알고리즘/Programmers 2024. 6. 12. [JavaScript] 1로 만들기 문제정수가 있을 때, 짝수라면 반으로 나누고, 홀수라면 1을 뺀 뒤 반으로 나누면, 마지막엔 1이 된다. 예를 들어 10이 있다면 다음과 같이 연산된다. • 10 / 2 = 5 • (5 - 1) / 2 = 2 • 2 / 2 = 1 총 3번의 나누기 연산으로 1이 됐다. 정수들이 담긴 리스트 num_list가 매개변수로 주어질 때, num_list의 모든 원소들을 1로 만들기 위해서 필요한 나누기 연산의 횟수를 반환하는 함수를 작성해라. 예시num_listcount총 나누기 연산 횟수[2, 4, 7]33[1, 2, 3]25[1, 1, 1]05 나의 풀이function solution(num_list) { // 총 나누기 연산 횟수를 저장할 변수 let cnt = 0; // num_list의.. 🧬알고리즘/Programmers 2024. 6. 12. [JavaScript] 조건에 맞게 수열 변환하기 2 문제정수 배열 arr가 매개변수로 주어진다. arr의 각 원소에 대해 값이 50보다 크거나 같은 짝수라면 2로 나누고, 값이 50보다 작고 홀수라면 2를 곱한 후 1을 더한다. 이러한 작업을 x번 반복한 결과인 배열을 arr(x) 라고 표현했을 때, arr(x) = arr(x + 1)인 x가 항상 존재한다. 이러한 x중 가장 작은 값을 반환하는 함수를 작성해라. 단, 두 배열에 대한 "="는 배열의 크기가 서로 같으며, 같은 인덱스의 원소가 각각 같음을 의미한다. 예시반복 횟수arr0[1, 2, 3, 100, 99, 98]1[3, 2, 7, 50, 99, 49]2[7, 2, 15, 25, 99, 99]3[15, 2, 31, 51, 99, 99]4[31, 2, 63, 51, 99, 99]5[63, 2, .. 🧬알고리즘/Programmers 2024. 6. 12. 이전 1 ··· 4 5 6 7 8 9 10 ··· 17 다음