분류 전체보기196 [JavaScript] 카드 뭉치 문제코니는 영어 단어가 적힌 카드 뭉치 두 개를 선물로 받았습니다. 코니는 다음과 같은 규칙으로 카드에 적힌 단어들을 사용해 원하는 순서의 단어 배열을 만들 수 있는지 알고 싶습니다.원하는 카드 뭉치에서 카드를 순서대로 한 장씩 사용합니다.한 번 사용한 카드는 다시 사용할 수 없습니다.카드를 사용하지 않고 다음 카드로 넘어갈 수 없습니다.기존에 주어진 카드 뭉치의 단어 순서는 바꿀 수 없습니다.예를 들어 첫 번째 카드 뭉치에 순서대로 ["i", "drink", "water"], 두 번째 카드 뭉치에 순서대로 ["want", "to"]가 적혀있을 때 ["i", "want", "to", "drink", "water"] 순서의 단어 배열을 만들려고 한다면 첫 번째 카드 뭉치에서 "i"를 사용한 후 두 번.. 🧬알고리즘/Programmers 2024. 10. 2. [JavaScript] 둘만의 암호 문제두 문자열 s와 skip, 그리고 자연수 index가 주어질 때, 다음 규칙에 따라 문자열을 만들려 합니다. 암호의 규칙은 다음과 같습니다.문자열 s의 각 알파벳을 index만큼 뒤의 알파벳으로 바꿔줍니다.index만큼의 뒤의 알파벳이 z를 넘어갈 경우 다시 a로 돌아갑니다.skip에 있는 알파벳은 제외하고 건너뜁니다예를 들어 s = "aukks", skip = "wbqd", index = 5일 때, a에서 5만큼 뒤에 있는 알파벳은 f지만 [b, c, d, e, f]에서 'b'와 'd'는 skip에 포함되므로 세지 않습니다. 따라서 'b', 'd'를 제외하고 'a'에서 5만큼 뒤에 있는 알파벳은 [c, e, f, g, h] 순서에 의해 'h'가 됩니다. 나머지 "ukks" 또한 위 규칙대로 .. 🧬알고리즘/Programmers 2024. 10. 2. [JavaScript] 크기가 작은 부분 문자열 문제숫자로 이루어진 문자열 t와 p가 주어질 때, t에서 p와 길이가 같은 부분문자열 중에서, 이 부분문자열이 나타내는 수가 p가 나타내는 수보다 작거나 같은 것이 나오는 횟수를 return하는 함수 solution을 완성하세요. 예를 들어, t="3141592"이고 p="271" 인 경우, t의 길이가 3인 부분 문자열은 314, 141, 415, 159, 592입니다. 이 문자열이 나타내는 수 중 271보다 작거나 같은 수는 141, 159 2개 입니다. 예시tpresult"3141592""271"2"500220839878""7"8"10203""15"3 나의 풀이function solution(t, p) { let cnt = 0; for (let i = 0; i = num) cnt++.. 🧬알고리즘/Programmers 2024. 10. 2. [JavaScript] 기사단원의 무기 문제숫자나라 기사단의 각 기사에게는 1번부터 number까지 번호가 지정되어 있습니다. 기사들은 무기점에서 무기를 구매하려고 합니다. 각 기사는 자신의 기사 번호의 약수 개수에 해당하는 공격력을 가진 무기를 구매하려 합니다. 단, 이웃나라와의 협약에 의해 공격력의 제한수치를 정하고, 제한수치보다 큰 공격력을 가진 무기를 구매해야 하는 기사는 협약기관에서 정한 공격력을 가지는 무기를 구매해야 합니다. 예를 들어, 15번으로 지정된 기사단원은 15의 약수가 1, 3, 5, 15로 4개 이므로, 공격력이 4인 무기를 구매합니다. 만약, 이웃나라와의 협약으로 정해진 공격력의 제한수치가 3이고 제한수치를 초과한 기사가 사용할 무기의 공격력이 2라면, 15번으로 지정된 기사단원은 무기점에서 공격력이 2인 .. 🧬알고리즘/Programmers 2024. 9. 26. [JavaScript] 과일 장수 문제과일 장수가 사과 상자를 포장하고 있습니다. 사과는 상태에 따라 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개를 만들어 판매하여 최대 이익을 얻을 수 있습.. 🧬알고리즘/Programmers 2024. 9. 24. [JavaScript] 푸드 파이트 대회 문제수웅이는 매달 주어진 음식을 빨리 먹는 푸드 파이트 대회를 개최합니다. 이 대회에서 선수들은 1대 1로 대결하며, 매 대결마다 음식의 종류와 양이 바뀝니다. 대결은 준비된 음식들을 일렬로 배치한 뒤, 한 선수는 제일 왼쪽에 있는 음식부터 오른쪽으로, 다른 선수는 제일 오른쪽에 있는 음식부터 왼쪽으로 순서대로 먹는 방식으로 진행됩니다. 중앙에는 물을 배치하고, 물을 먼저 먹는 선수가 승리하게 됩니다. 이때, 대회의 공정성을 위해 두 선수가 먹는 음식의 종류와 양이 같아야 하며, 음식을 먹는 순서도 같아야 합니다. 또한, 이번 대회부터는 칼로리가 낮은 음식을 먼저 먹을 수 있게 배치하여 선수들이 음식을 더 잘 먹을 수 있게 하려고 합니다. 이번 대회를 위해 수웅이는 음식을 주문했는데, 조건을 고려하지 않.. 🧬알고리즘/Programmers 2024. 9. 24. [JavaScript] 숫자 문자열과 영단어 - 2021 카카오 채용연계형 인턴십 문제네오와 프로도가 숫자놀이를 하고 있습니다. 네오가 프로도에게 숫자를 건넬 때 일부 자릿수를 영단어로 바꾼 카드를 건네주면 프로도는 원래 숫자를 찾는 게임입니다.다음은 숫자의 일부 자릿수를 영단어로 바꾸는 예시입니다.1478 → "one4seveneight"234567 → "23four5six7"10203 → "1zerotwozero3"이렇게 숫자의 일부 자릿수가 영단어로 바뀌어졌거나, 혹은 바뀌지 않고 그대로인 문자열 s가 매개변수로 주어집니다. s가 의미하는 원래 숫자를 return 하도록 solution 함수를 완성해주세요. 참고로 각 숫자에 대응되는 영단어는 다음 표와 같습니다.0123456789"zero""one""two""three""four""five""six""seven""eight""n.. 🧬알고리즘/Programmers 2024. 9. 11. [JavaScript] 없는 숫자 더하기 문제0부터 9까지의 숫자 중 일부가 들어있는 정수 배열 numbers가 매개변수로 주어집니다. numbers에서 찾을 수 없는 0부터 9까지의 숫자를 모두 찾아 더한 수를 반환하도록 함수를 완성해주세요. 예시numbersresult[1, 2, 3, 4, 6, 7, 8, 0]14[5, 8, 4, 0, 6, 7, 9]6 나의 풀이function solution(numbers) { const allNums = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]; const another = allNums.filter((v) => !numbers.includes(v)); return another.reduce((a, c) => a + c, 0);} 풀이 방법1. 0 부터 9 까지의 숫자를.. 🧬알고리즘/Programmers 2024. 9. 10. [JavaScript] 부족한 금액 계산하기 문제새로 생긴 놀이기구는 인기가 매우 많아 줄이 끊이질 않습니다. 이 놀이기구의 원래 이용료는 price원 인데, 놀이기구를 N 번 째 이용한다면 원래 이용료의 N배를 받기로 하였습니다. 즉, 처음 이용료가 100이었다면 2번째에는 200, 3번째에는 300으로 요금이 인상됩니다.놀이기구를 count번 타게 되면 현재 자신이 가지고 있는 금액에서 얼마가 모자라는지를 반환하는 함수를 완성하세요.단, 금액이 부족하지 않으면 0을 반환하세요. 예시pricemoneycountreturn320410 price가 3이고 카운트가 4면 총 금액은 3 + 6 + 9 + 12인 30이 된다.money를 20 가지고 있기 때문에 10이 모자라게 된다. 나의 풀이function solution(price, money, .. 🧬알고리즘/Programmers 2024. 9. 10. [JavaScript] 약수의 개수와 덧셈 문제두 정수 left와 right가 매개변수로 주어진다. left부터 right까지의 모든 수들 중에서, 약수의 개수가 짝수인 수는 더하고, 약수의 개수가 홀수인 수는 뺀 수를 반환하는 함수를 작성하라. 예시leftrightreturn131743242752 13의 약수는 [1, 13]이므로 더해준다.14의 약수는 [1, 2, 7, 14]이므로 더해준다.15의 약수는 [1, 3, 5, 15]으므로 더해준다.16의 약수는 [1, 4, 16]이므로 빼준다.17의 약수는 [1, 17]이므로 더해준다.따라서, 결과값은 13 + 14 + 15 - 16 + 17인 43이 반환된다. 나의 풀이function solution(left, right) { let cnt = 0, result = 0; for .. 🧬알고리즘/Programmers 2024. 9. 9. [JavaScript] 3진법 뒤집기 문제자연수 n이 매개변수로 주어진다. n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 반환하는 함수를 작성하라. 예시n (10진법)n (3진법)앞뒤 반전 (3진법)10진법으로 표현45120000217 나의 풀이const solution = n => parseInt(n.toString(3).split("").reverse().join(""), 3); 풀이 방법1. toString(3)을 사용해서 숫자 n을 3진법으로 변환한다.n.toString(3)// n = 1200 2. split() 함수를 사용해서 배열로 변환한 후 reserver() 함수를 사용해서 역정렬해준다.n.toString(3).split("").reverse() 3. join() 함수를 사용해서 문자열로 변.. 🧬알고리즘/Programmers 2024. 8. 29. [JavaScript] 두 개 뽑아서 더하기 문제정수 배열 numbers가 매개변수로 주어진다. numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 반환하는 함수를 작성하라. 나의 풀이function solution(numbers) { const result = []; for (let i = 0; i a - b);} 풀이 방법1. 이중 for() 문을 사용해서 모든 원소를 순회하면서 나올 수 있는 합을 result 배열에 넣어준다.function solution(numbers) { const result = []; // 1 for (let i = 0; i 2. Set() 함수를 사용해서 중복 값을 모두 제거해준다.new Set(result) 3. Array.f.. 🧬알고리즘/Programmers 2024. 8. 29. 이전 1 2 3 4 5 6 ··· 17 다음