본문 바로가기

알고리즘/Programmers79

[TIL] 2023.05.06 Programmers_문자열 내 마음대로 정렬하기 Today I Learned Programmers 문제 풀기 Programmers 문제 풀기 문자열 내 마음대로 정렬하기 문제 설명 문자열로 구성된 리스트 strings와, 정수 n이 주어졌을 때, 각 문자열의 인덱스 n번째 글자를 기준으로 오름차순 정렬하려 합니다. 예를 들어 strings가 ["sun", "bed", "car"]이고 n이 1이면 각 단어의 인덱스 1의 문자 "u", "e", "a"로 strings를 정렬합니다. 입출력 예 strings n return ["sun", "bed", "car"] 1 ["car", "bed", "sun"] ["abce", "abcd", "cdx"] 2 ["abcd", "abce", "cdx"] 입출력 예 1 "sun", "bed", "car"의 1번째 인덱스.. 2023. 5. 6.
[TIL] 2023.04.24 Programmers_조건에 맞게 수열 반환하기 Today I Learned Programmers 문제 풀기 Programmers 문제 풀기 조건에 맞게 수열 반환하기1 문제 설명 정수 배열 arr가 주어집니다. arr의 각 원소에 대해 값이 50보다 크거나 같은 짝수라면 2로 나누고, 50보다 작은 홀수라면 2를 곱합니다. 그 결과인 정수 배열을 return 하는 solution 함수를 완성해 주세요. 입출력 예 arr result [1, 2, 3, 100, 99, 98] [2, 2, 6, 50, 99, 49] 입출력 예 #1 1, 3은 50 미만의 홀수 이므로 2를 곱하고, 100, 98은 50 이상의 짝수이므로 2로 나눕니다. 나머지 값들은 변경 조건에 해당하지 않으므로 바꾸지 않습니다. 따라서 [2, 2, 6, 50, 99, 49]를 retur.. 2023. 4. 24.
[TIL] 2023.04.23 Programmers_옹알이(1) Today I Learned Programmers 문제 풀기 Programmers 문제 풀기 옹알이(1) 문제 설명 머쓱이는 태어난 지 6개월 된 조카를 돌보고 있습니다. 조카는 아직 "aya", "ye", "woo", "ma" 네 가지 발음을 최대 한 번씩 사용해 조합한(이어 붙인) 발음밖에 하지 못합니다. 문자열 배열 babbling이 매개변수로 주어질 때, 머쓱이의 조카가 발음할 수 있는 단어의 개수를 return 하도록 solution 함수를 완성해 주세요. 제한사항 1 ≤ babbling의 길이 ≤ 100 1 ≤ babbling[i]의 길이 ≤ 15 babbling의 각 문자열에서 "aya", "ye", "woo", "ma"는 각각 최대 한 번씩만 등장합니다. 즉, 각 문자열의 가능한 모든 부분.. 2023. 4. 23.
[TIL] 2023.04.22 Programmers_예산 Today I Learned Programmers 문제 풀기 면접스터디 Programmers 문제 풀기 예산 문제 설명 S사에서는 각 부서에 필요한 물품을 지원해 주기 위해 부서별로 물품을 구매하는데 필요한 금액을 조사했습니다. 그러나, 전체 예산이 정해져 있기 때문에 모든 부서의 물품을 구매해 줄 수는 없습니다. 그래서 최대한 많은 부서의 물품을 구매해 줄 수 있도록 하려고 합니다. 물품을 구매해 줄 때는 각 부서가 신청한 금액만큼을 모두 지원해 줘야 합니다. 예를 들어 1,000원을 신청한 부서에는 정확히 1,000원을 지원해야 하며, 1,000원보다 적은 금액을 지원해 줄 수는 없습니다. 부서별로 신청한 금액이 들어있는 배열 d와 예산 budget이 매개변수로 주어질 때, 최대 몇 개의 부서에 물품.. 2023. 4. 23.
[TIL] 2023.04.21 Programmers_이상한 문자 만들기 Today I Learned Programmers 문제 풀기 Programmers 문제 풀기 이상한 문자 만들기 문제 설명 문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을 리턴하는 함수, solution을 완성하세요. 제한 사항 문자열 전체의 짝/홀수 인덱스가 아니라, 단어(공백을 기준)별로 짝/홀수 인덱스를 판단해야 합니다. 첫 번째 글자는 0번째 인덱스로 보아 짝수번째 알파벳으로 처리해야 합니다. 입출력 예 s return "try hello world" "TrY HeLlO WoRlD" "try hello world"는 세 단어 "try", "hello", "wo.. 2023. 4. 23.
[TIL] 2023.04.20 Programmers_같은 숫자는 싫어 Today I Learned Programmers 문제 풀기 Programmers 문제 풀기 같은 숫자는 싫어 문제 설명 배열 arr가 주어집니다. 배열 arr의 각 원소는 숫자 0부터 9까지로 이루어져 있습니다. 이때, 배열 arr에서 연속적으로 나타나는 숫자는 하나만 남기고 전부 제거하려고 합니다. 단, 제거된 후 남은 수들을 반환할 때는 배열 arr의 원소들의 순서를 유지해야 합니다. 예를 들면, arr = [1, 1, 3, 3, 0, 1, 1] 이면 [1, 3, 0, 1]을 return 합니다. arr = [4, 4, 4, 3, 3] 이면 [4, 3] 을 return 합니다. 배열 arr에서 연속적으로 나타나는 숫자는 제거하고 남은 수들을 return 하는 solution 함수를 완성해 주세요. .. 2023. 4. 20.
[TIL] 2023.04.19 Programmers_최대공약수와 최소공배수 Today I Learned Programmers 문제 풀기 Programmers 문제 풀기 최대공약수와 최소공배수 문제 설명 두 수를 입력받아 두 수의 최대공약수와 최소공배수를 반환하는 함수, solution을 완성해 보세요. 배열의 맨 앞에 최대공약수, 그다음 최소공배수를 넣어 반환하면 됩니다. 예를 들어 두 수 3, 12의 최대공약수는 3, 최소공배수는 12이므로 solution(3, 12)는 [3, 12]를 반환해야 합니다. 입출력 예 n m return 3 12 [3, 12] 2 5 [1, 10] 나의 1차 풀이 function solution(n, m) { let max = Math.max(n,m); let min = Math.min(n,m); let array = []; // 최대공약수 fo.. 2023. 4. 19.
[TIL] 2023.04.18 Programmers_행렬의 덧셈 Today I Learned Programmers 문제 풀기 Programmers 문제 풀기 행렬의 덧셈 문제 설명 행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다. 2개의 행렬 arr1과 arr2를 입력받아, 행렬 덧셈의 결과를 반환하는 함수, solution을 완성해 주세요. 입출력 예 arr1 arr2 return [[1,2],[2,3]] [[3,4],[5,6]] [[4,6],[7,9]] [[1],[2]] [[3],[4]] [[4],[6]] 나의 풀이 function solution(arr1, arr2) { return arr1.map((arr, first_index) => arr.map((num, second_index) => num + arr2.. 2023. 4. 18.
[TIL] 2023.04.17 Programmers_약수의 개수와 덧셈 Today I Learned Programmers 문제 풀기 Programmers 문제 풀기 약수의 개수와 덧셈 문제 설명 두 정수 left와 right가 매개변수로 주어집니다. left부터 right까지의 모든 수들 중에서, 약수의 개수가 짝수인 수는 더하고, 약수의 개수가 홀수인 수는 뺀 수를 return 하도록 solution 함수를 완성해 주세요. 입출력 예 left right result 13 17 43 24 27 52 입출력 예 #1 다음 표는 13부터 17까지의 수들의 약수를 모두 나타낸 것입니다. 수 약수 약수의 개수 13 1, 13 2 14 1, 2, 7, 14 4 15 1, 3, 5, 15 4 16 1, 2, 4, 8, 16 5 17 1, 17 2 따라서, 13 + 14 + 15 - 1.. 2023. 4. 17.
[TIL] 2023.04.16 Programmers_연속된 수의 합 Today I Learned Programmers 문제 풀기 Programmers 문제 풀기 연속된 수의 합 문제 설명 연속된 세 개의 정수를 더해 12가 되는 경우는 3, 4, 5입니다. 두 정수 num과 total이 주어집니다. 연속된 수 num개를 더한 값이 total이 될 때, 정수 배열을 오름차순으로 담아 return 하도록 solution함수를 완성해 보세요. 입출력 예 num total result 3 12 [3, 4, 5] 5 15 [1, 2, 3, 4, 5] 5 5 [-1, 0, 1, 2, 3] 1차 풀이 function solution(num, total) { let array = Array(total+1).fill(0).map((v, i) => i); for (let i = 0; i .. 2023. 4. 16.