'🧩 알고리즘 성장기' 카테고리의 글 목록 (6 Page)
본문 바로가기
728x90

🧩 알고리즘 성장기70

[프로그래머스] 완주하지 못한 선수 문제 설명 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수들의 이름이 담긴 배열 completion이 주어질 때, 완주하지 못한 선수의 이름을 return 하도록 solution 함수를 작성해주세요. 제한사항 마라톤 경기에 참여한 선수의 수는 1명 이상 100,000명 이하입니다. completion의 길이는 participant의 길이보다 1 작습니다. 참가자의 이름은 1개 이상 20개 이하의 알파벳 소문자로 이루어져 있습니다. 참가자 중에는 동명이인이 있을 수 있습니다. 입출력 예 participant completion return ["leo", "kik.. 2023. 8. 4.
[프로그래머스] 가운데 글자 가져오기 문제 설명 단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다. 제한사항 s는 길이가 1 이상, 100이하인 스트링입니다. 입출력 예 s return "abcde" "c" "qwer" "we" 문제풀이 문자열이 홀수인 지 짝수인 지 판단한 후 slice()를 사용하여 문자열을 잘라주었다. 이때 홀수인 경우 Math.floor()를 사용하며 소수점을 버려주었다. function solution(s) { var answer = ""; let startIndex = 0; // 문자열이 짝수인 지 홀수인 지 판단 const evenOddType = s.length % 2; // 문자열이 홀수라면 if (evenOddType === 1.. 2023. 8. 3.
[프로그래머스] 추억 점수 문제 설명 사진들을 보며 추억에 젖어 있던 루는 사진별로 추억 점수를 매길려고 합니다. 사진 속에 나오는 인물의 그리움 점수를 모두 합산한 값이 해당 사진의 추억 점수가 됩니다. 예를 들어 사진 속 인물의 이름이 ["may", "kein", "kain"]이고 각 인물의 그리움 점수가 [5점, 10점, 1점]일 때 해당 사진의 추억 점수는 16(5 + 10 + 1)점이 됩니다. 다른 사진 속 인물의 이름이 ["kali", "mari", "don", "tony"]이고 ["kali", "mari", "don"]의 그리움 점수가 각각 [11점, 1점, 55점]]이고, "tony"는 그리움 점수가 없을 때, 이 사진의 추억 점수는 3명의 그리움 점수를 합한 67(11 + 1 + 55)점입니다. 그리워하는 사람의 .. 2023. 8. 2.
[프로그래머스] 예산 문제 설명 S사에서는 각 부서에 필요한 물품을 지원해 주기 위해 부서별로 물품을 구매하는데 필요한 금액을 조사했습니다. 그러나, 전체 예산이 정해져 있기 때문에 모든 부서의 물품을 구매해 줄 수는 없습니다. 그래서 최대한 많은 부서의 물품을 구매해 줄 수 있도록 하려고 합니다. 물품을 구매해 줄 때는 각 부서가 신청한 금액만큼을 모두 지원해 줘야 합니다. 예를 들어 1,000원을 신청한 부서에는 정확히 1,000원을 지원해야 하며, 1,000원보다 적은 금액을 지원해 줄 수는 없습니다. 부서별로 신청한 금액이 들어있는 배열 d와 예산 budget이 매개변수로 주어질 때, 최대 몇 개의 부서에 물품을 지원할 수 있는지 return 하도록 solution 함수를 완성해 주세요. 제한사항 d는 부서별로 신청한.. 2023. 8. 1.
[프로그래머스] 과일 장수 문제 설명 과일 장수가 사과 상자를 포장하고 있습니다. 사과는 상태에 따라 1점부터 k점까지의 점수로 분류하며, k점이 최상품의 사과이고 1점이 최하품의 사과입니다. 사과 한 상자의 가격은 다음과 같이 결정됩니다. 한 상자에 사과를 m 개씩 담아 포장합니다. 상자에 담긴 사과 중 가장 낮은 점수가 p(1 ≤ p ≤ k)점인 경우, 사과 한 상자의 가격은 p * m입니다. 과일 장수가 가능한 많은 사과를 팔았을 때, 얻을 수 있는 최대 이익을 계산하고자 합니다. (사과는 상자 단위로만 판매하며, 남는 사과는 버립니다.) 예를 들어 k = 3, m = 4, 사과 7개의 정수가 [1, 2, 3, 1, 2, 3, 1]이라면, 다음과 같이 [2, 3, 2, 3]으로 구성된 사과 상자 1개를 만들어 판매하여 최대 .. 2023. 7. 31.
[프로그래머스] 서울에서 김서방 찾기 문제 설명 String형 배열 seoul의 element중 "Kim"의 위치 x를 찾아, "김서방은 x에 있다"는 String을 반환하는 함수, solution을 완성하세요. seoul에 "Kim"은 오직 한 번만 나타나며 잘못된 값이 입력되는 경우는 없습니다. 제한사항 seoul은 길이 1 이상, 1000 이하인 배열입니다. seoul의 원소는 길이 1 이상, 20 이하인 문자열입니다. "Kim"은 반드시 seoul 안에 포함되어 있습니다. 입출력 예 seoul return ["Jane", "Kim"] "김서방은 1에 있다." 문제풀이 indexOf()를 사용하여 seoul이라는 배열에서 "Kim"의 index를 출력하고 템플릿 리터럴(Template Literals)를 사용하여 앞뒤 테스트를 추가해주.. 2023. 7. 29.
[프로그래머스] x만큼 간격이 있는 n개의 숫 문제 설명 함수 solution은 정수 x와 자연수 n을 입력 받아, x부터 시작해 x씩 증가하는 숫자를 n개 지니는 리스트를 리턴해야 합니다. 다음 제한 조건을 보고, 조건을 만족하는 함수, solution을 완성해주세요. 제한사항 x는 -10000000 이상, 10000000 이하인 정수입니다. n은 1000 이하인 자연수입니다. 입출력 예 x n answer 2 5 [2, 4, 6, 8, 10] -4 2 [-4, -8] 문제풀이 function solution(x, n) { var answer = []; answer = Array.from({ length: n }, (_, i) => (i + 1) * x); // index(= i)가 0부터 시작하기 때문에 (i + 1)에 * x를 해줘서 배열을 초.. 2023. 7. 28.
[프로그래밍] 특정 문자열로 끝나는 가장 긴 부분 문자열 찾기 문제 설명 문자열 myString과 pat가 주어집니다. myString의 부분 문자열중 pat로 끝나는 가장 긴 부분 문자열을 찾아서 return 하는 solution 함수를 완성해 주세요. 제한사항 5 ≤ myString ≤ 20 1 ≤ pat ≤ 5 pat은 반드시 myString의 부분 문자열로 주어집니다. myString과 pat에 등장하는 알파벳은 대문자와 소문자를 구분합니다. 입출력 예 myString pat result "AbCdEFG" "dE" "AbCdE" "AAAAaaaa" "a" "AAAAaaaa" 입출력 예 설명 입출력 예 #1 "AbCdEFG"에서 "dE"는 한 번 등장하며 처음부터 해당 위치까지 잘라내면 "AbCdE"가 됩니다. 따라서 이 문자열이 "dE"로 끝나는 가장 긴 문.. 2023. 7. 27.
[프로그래밍] 빈 배열에 추가, 삭제하기 문제 설명 아무 원소도 들어있지 않은 빈 배열 X가 있습니다. 길이가 같은 정수 배열 arr과 boolean 배열 flag가 매개변수로 주어질 때, flag를 차례대로 순회하며 flag[i]가 true라면 X의 뒤에 arr[i]를 arr[i] × 2 번 추가하고, flag[i]가 false라면 X에서 마지막 arr[i]개의 원소를 제거한 뒤 X를 return 하는 solution 함수를 작성해 주세요. 제한사항 1 ≤ arr의 길이 = flag의 길이 ≤ 100 arr의 모든 원소는 1 이상 9 이하의 정수입니다. 현재 X의 길이보다 더 많은 원소를 빼는 입력은 주어지지 않습니다. 입출력 예 arr flag result [3, 2, 4, 1, 3] [true, false, true, false, fals.. 2023. 7. 26.
728x90