본문 바로가기

WorkOut/JavaScript34

Day25: 대문자와 소문자, 인덱스 바꾸기, 약수 구하기, 가장 큰 수 찾기, 문자열 정렬하기(2) 대문자와 소문자문자열 my_string이 매개변수로 주어질 때, 대문자는 소문자로 소문자는 대문자로 변환한 문자열을 return하도록 solution 함수를 완성해주세요.function solution(my_string) { return my_string.split('').sort((a,b) => a - b) .map(v => v.charCodeAt() > 90 ? v.toUpperCase() : v.toLowerCase()).join('')}다른 답:function solution(my_string) { return my_string.split('') .map(n => n === n.toUpperCase() ? n.toLowerCase() : n.toUpperCase()).jo.. 2025. 9. 18.
Day24: 다음에 올 숫자, 연속된 수의 합, 숨어있는 숫자의 덧셈(1), 암호 해독 다음에 올 숫자등차수열 혹은 등비수열 common이 매개변수로 주어질 때, 마지막 원소 다음으로 올 숫자를 return 하도록 solution 함수를 완성해보세요.function solution(common) { if(common[2] === common[1] + (common[1] - common[0])) return common[0] + (common[1] - common[0]) * common.length if(common[2] === common[1] * (common[1] / common[0])) return common[0] * (common[1] / common[0]) ** common.length}다른 답:function solution(common) { .. 2025. 9. 17.
Day23: 전국 대회 선발 고사, 그림 확대, 정사각형으로 만들기, 주사위의 개수, 전국 대회 선발 고사0번부터 n - 1번까지 n명의 학생 중 3명을 선발하는 전국 대회 선발 고사를 보았습니다. 등수가 높은 3명을 선발해야 하지만, 개인 사정으로 전국 대회에 참여하지 못하는 학생들이 있어 참여가 가능한 학생 중 등수가 높은 3명을 선발하기로 했습니다.각 학생들의 선발 고사 등수를 담은 정수 배열 rank와 전국 대회 참여 가능 여부가 담긴 boolean 배열 attendance가 매개변수로 주어집니다. 전국 대회에 선발된 학생 번호들을 등수가 높은 순서대로 각각 a, b, c번이라고 할 때 10000 × a + 100 × b + c를 return 하는 solution 함수를 작성해 주세요.function solution(rank, attendance) { let total = 0.. 2025. 9. 16.
Day22: 문자열 여러 번 뒤집기, 문자 개수 세기, 오른쪽 왼쪽, 두 수의 합, 무작위로 k개의 수 뽑기 문자열 여러 번 뒤집기문자열 my_string과 이차원 정수 배열 queries가 매개변수로 주어집니다. queries의 원소는 [s, e] 형태로, my_string의 인덱스 s부터 인덱스 e까지를 뒤집으라는 의미입니다. my_string에 queries의 명령을 순서대로 처리한 후의 문자열을 return 하는 solution 함수를 작성해 주세요.function solution(my_string, queries) { let arr = my_string.split('') for(let i = 0; i 다른 답:function solution(my_string, queries) { let str = my_string.split(''); queries.forEach(([start, end.. 2025. 9. 15.
Day21: 리스트 자르기, qr code, 간단한 논리 연산, 배열 만들기 4, 배열 만들기 6 리스트 자르기정수 n과 정수 3개가 담긴 리스트 slicer 그리고 정수 여러 개가 담긴 리스트 num_list가 주어집니다. slicer에 담긴 정수를 차례대로 a, b, c라고 할 때, n에 따라 다음과 같이 num_list를 슬라이싱 하려고 합니다.n = 1 : num_list의 0번 인덱스부터 b번 인덱스까지n = 2 : num_list의 a번 인덱스부터 마지막 인덱스까지n = 3 : num_list의 a번 인덱스부터 b번 인덱스까지n = 4 : num_list의 a번 인덱스부터 b번 인덱스까지 c 간격으로올바르게 슬라이싱한 리스트를 return하도록 solution 함수를 완성해주세요.function solution(n, slicer, num_list) { if(n === 1) return.. 2025. 9. 14.
Day20: 문자열 묶기, 세 개의 구분자, 2의 영역, 수열과 구간 쿼리4, 배열의 길이를 2의 거듭제곱으로 만들기 문자열 묶기문자열 배열 strArr이 주어집니다. strArr의 원소들을 길이가 같은 문자열들끼리 그룹으로 묶었을 때 가장 개수가 많은 그룹의 크기를 return 하는 solution 함수를 완성해 주세요.function solution(strArr) { let arr = Array.from({length: 30}).fill(0) for(let i = 0; i a - b)[29]}다른 답:function solution(strArr) { const counter = new Map(); for (const str of strArr) { counter.set(str.length, (counter.get(str.length) || 0) + 1); } return Math.max(..... 2025. 9. 13.
Day19: 배열 만들기5, 1로 만들기, 문자열 뒤집기, 특정 문자열로 끝나는 가장 긴 부분 찾기, 문자열이 몇 번 등장하는지 세기, 날짜 비교하기 배열 만들기5문자열 배열 intStrs와 정수 k, s, l가 주어집니다. intStrs의 원소는 숫자로 이루어져 있습니다.배열 intStrs의 각 원소마다 s번 인덱스에서 시작하는 길이 l짜리 부분 문자열을 잘라내 정수로 변환합니다. 이때 변환한 정수값이 k보다 큰 값들을 담은 배열을 return 하는 solution 함수를 완성해 주세요.function solution(intStrs, k, s, l) { return intStrs.map(v => Number(v.split('').splice(s, l).join(''))).filter(v => v > k)}다른 답:function solution(intStrs, k, s, l) { return intStrs.map((v) => +v.sli.. 2025. 9. 12.
Day18: 세로 읽기, 이차원 배열 대각선 순회하기, 빈 배열에 추가 삭제, 수열과 구간 쿼리1, 글자 지우기 세로 읽기문자열 my_string과 두 정수 m, c가 주어집니다. my_string을 한 줄에 m 글자씩 가로로 적었을 때 왼쪽부터 세로로 c번째 열에 적힌 글자들을 문자열로 return 하는 solution 함수를 작성해 주세요.function solution(my_string, m, c) { let arr = [] for(let i = 0; i v != null).join('')}다른 답:function solution(my_string, m, c) { return [...my_string].filter((_, i) => i % m === c - 1).join('');}function solution(my_string, m, c) { return Array.from(my_s.. 2025. 9. 11.
Day17: 배열 만들기 2, 원소들의 곱과 합, 수열과 구간 쿼리3, 수열과 구간 쿼리2, 5명씩, 문자열 잘라서 정렬하기 배열 만들기 2정수 l과 r이 주어졌을 때, l 이상 r이하의 정수 중에서 숫자 "0"과 "5"로만 이루어진 모든 정수를 오름차순으로 저장한 배열을 return 하는 solution 함수를 완성해 주세요.만약 그러한 정수가 없다면, -1이 담긴 배열을 return 합니다.function solution(l, r) { let a = [] for(let i = l; i c === '0' || c === '5') if(e) a.push(i) } if(a.length 다른 답:function* gen50() { let i = 1; while(true) { yield Number(Number(i).toString(2)) * 5; i.. 2025. 9. 10.