코딩테스트
[코딩테스트]시저암호
문제 설명 어떤 문장의 각 알파벳을 일정한 거리만큼 밀어서 다른 알파벳으로 바꾸는 암호화 방식을 시저 암호라고 합니다. 예를 들어 "AB"는 1만큼 밀면 "BC"가 되고, 3만큼 밀면 "DE"가 됩니다. "z"는 1만큼 밀면 "a"가 됩니다. 문자열 s와 거리 n을 입력받아 s를 n만큼 민 암호문을 만드는 함수, solution을 완성해 보세요. function solution(s, n) { const sArray = [] for(let i = 0; i 90 || ASCIIcode > 98 && shiftASCIIcode > 122 ){ shiftASCIIcode = shiftASCIIcode - 26 } sArray.push(String.fromCharCode(shiftASCIIcode)) } retu..
[코딩테스트]예산
문제 설명 S사에서는 각 부서에 필요한 물품을 지원해 주기 위해 부서별로 물품을 구매하는데 필요한 금액을 조사했습니다. 그러나, 전체 예산이 정해져 있기 때문에 모든 부서의 물품을 구매해 줄 수는 없습니다. 그래서 최대한 많은 부서의 물품을 구매해 줄 수 있도록 하려고 합니다. 물품을 구매해 줄 때는 각 부서가 신청한 금액만큼을 모두 지원해 줘야 합니다. 예를 들어 1,000원을 신청한 부서에는 정확히 1,000원을 지원해야 하며, 1,000원보다 적은 금액을 지원해 줄 수는 없습니다. 부서별로 신청한 금액이 들어있는 배열 d와 예산 budget이 매개변수로 주어질 때, 최대 몇 개의 부서에 물품을 지원할 수 있는지 return 하도록 solution 함수를 완성해주세요. function solution..
[코딩테스트]이상한 문자 만들기
문제 설명 문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을 리턴하는 함수 solution을 완성하시오 function solution(s) { return s.split(' ').map((x)=>( [...x].map((s,idx)=>( idx % 2 ? s.toLowerCase():s.toUpperCase() )).join('') )).join(' ') } String.split() : 지정한 구분자를 이용하여 배열로 반환 Array.map(currentValue, index) : 배열의 요소를 반대로 재배 배열 내의 모든 요소 각각에 대하여 주어진 함수를 호출한 ..
[코딩테스트]3진법 뒤집기
문제 설명 자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해 주세요. function solution(n) { return parseInt([...n.toString(3)].reverse().join(''),3) } Number.toString([radix]) : 문자열로 반환, 인수로 숫자를 넣으면 해당 숫자값으로 변환한 값을 문자열로 반환 [...n] : 스프레드 오퍼레이터 split('')대신에 사용, split()의 구분자로 빈 문자열을 제공하면 오류가 발생 시킬수 있음 Array.reverse() : 배열의 요소를 반대로 재배열 Array.join() : 배열의 모든 요소를 연결해 하나..
[코딩테스트] 프로그래머스 영어가 싫어요
function solution(numbers) { const num = ['zero', 'one', 'two','three','four','five','six','seven','eight','nine']; num.forEach((x, idx) =>{ numbers = numbers.replaceAll(x, idx) }) return Number(numbers) }
[프로그래머스] 2차원으로 만들기
문제는 아래 링크입니다. 문제 설명 정수 배열 num_list와 정수 n이 매개변수로 주어집니다. num_list를 다음 설명과 같이 2차원 배열로 바꿔 return하도록 solution 함수를 완성해주세요. num_list가 [1, 2, 3, 4, 5, 6, 7, 8] 로 길이가 8이고 n이 2이므로 num_list를 2 * 4 배열로 다음과 같이 변경합니다. 2차원으로 바꿀 때에는 num_list의 원소들을 앞에서부터 n개씩 나눠 2차원 배열로 변경합니다. num_listnresult [1, 2, 3, 4, 5, 6, 7, 8] 2 [[1, 2], [3, 4], [5, 6], [7, 8]] 제한사항 num_list의 길이는 n의 배 수개입니다. 0 ≤ num_list의 길이 ≤ 150 2 ≤ n
[코딩테스트] 중복된 문자 제거
문제 https://school.programmers.co.kr/learn/courses/30/lessons/120888 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr function solution(my_string) { const my_string_list = [...new Set(my_string.split(''))] return my_string_list.join('') } 배열안 중복을 제거하는 방법중에 하나인 Set을 사용했습니다.
[코딩테스트] A로 B 만들기
문제 https://school.programmers.co.kr/learn/courses/30/lessons/120886 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr function solution(before, after) { const be = before.split('').sort() const af = after.split('').sort() return JSON.stringify(be) === JSON.stringify(af) ? 1 : 0 } 문제가 바꿨을때 after를 만들수 있느냐 이기때문에 before, after를 split으로 분리해..