분류 전체보기

728x90
반응형
프로그래머스/Level2(JS)

[프로그래머스] 구명보트 - JS

구명보트 ❓ 문제설명 무인도에 갇힌 사람들을 구명보트를 이용하여 구출하려고 합니다. 구명보트는 작아서 한 번에 최대 2명씩 밖에 탈 수 없고, 무게 제한도 있습니다. 예를 들어, 사람들의 몸무게가 [70kg, 50kg, 80kg, 50kg]이고 구명보트의 무게 제한이 100kg이라면 2번째 사람과 4번째 사람은 같이 탈 수 있지만 1번째 사람과 3번째 사람의 무게의 합은 150kg이므로 구명보트의 무게 제한을 초과하여 같이 탈 수 없습니다. 구명보트를 최대한 적게 사용하여 모든 사람을 구출하려고 합니다. 사람들의 몸무게를 담은 배열 people과 구명보트의 무게 제한 limit가 매개변수로 주어질 때, 모든 사람을 구출하기 위해 필요한 구명보트 개수의 최솟값을 return 하도록 solution 함수를 ..

프로그래머스/Level2(JS)

[프로그래머스] 카펫 - JS

카펫 ❓ 문제설명 Leo는 카펫을 사러 갔다가 아래 그림과 같이 중앙에는 노란색으로 칠해져 있고 테두리 1줄은 갈색으로 칠해져 있는 격자 모양 카펫을 봤습니다. Leo는 집으로 돌아와서 아까 본 카펫의 노란색과 갈색으로 색칠된 격자의 개수는 기억했지만, 전체 카펫의 크기는 기억하지 못했습니다. Leo가 본 카펫에서 갈색 격자의 수 brown, 노란색 격자의 수 yellow가 매개변수로 주어질 때 카펫의 가로, 세로 크기를 순서대로 배열에 담아 return 하도록 solution 함수를 작성해주세요. 🚫 제한조건 갈색 격자의 수 brown은 8 이상 5,000 이하인 자연수입니다. 노란색 격자의 수 yellow는 1 이상 2,000,000 이하인 자연수입니다. 카펫의 가로 길이는 세로 길이와 같거나, 세로..

프로그래머스/Level2(JS)

[프로그래머스] 영어 끝말잇기 - JS

영어 끝말잇기 ❓ 문제설명 1부터 n까지 번호가 붙어있는 n명의 사람이 영어 끝말잇기를 하고 있습니다. 영어 끝말잇기는 다음과 같은 규칙으로 진행됩니다. 1번부터 번호 순서대로 한 사람씩 차례대로 단어를 말합니다. 마지막 사람이 단어를 말한 다음에는 다시 1번부터 시작합니다. 앞사람이 말한 단어의 마지막 문자로 시작하는 단어를 말해야 합니다. 이전에 등장했던 단어는 사용할 수 없습니다. 한 글자인 단어는 인정되지 않습니다. 다음은 3명이 끝말잇기를 하는 상황을 나타냅니다. tank → kick → know → whell → land → dream → mother → robot → tank 위 끝말잇기는 다음과 같이 진행됩니다. 1번 사람이 자신의 첫 번째 차례에 tank를 말합니다. 2번 사람이 자신의 ..

프로그래머스/Level2(JS)

[프로그래머스] 짝지어 제거하기 - JS

짝지어 제거하기 ❓ 문제설명 짝지어 제거하기는, 알파벳 소문자로 이루어진 문자열을 가지고 시작합니다. 먼저 문자열에서 같은 알파벳이 2개 붙어 있는 짝을 찾습니다. 그다음, 그 둘을 제거한 뒤, 앞뒤로 문자열을 이어 붙입니다. 이 과정을 반복해서 문자열을 모두 제거한다면 짝지어 제거하기가 종료됩니다. 문자열 S가 주어졌을 때, 짝지어 제거하기를 성공적으로 수행할 수 있는지 반환하는 함수를 완성해 주세요. 성공적으로 수행할 수 있으면 1, 아닐 경우 0을 리턴해주면 됩니다. 예를 들어, 문자열 S = baabaa 라면 b aa baa > bb aa > aa > 의 순서로 문자열을 모두 제거할 수 있으므로 1을 반환합니다. 🚫 제한조건 문자열의 길이 : 1,000,000이하의 자연수 문자열은 모두 소문자로 ..

프로그래머스/Level2(JS)

[프로그래머스] 피보나치 수 - JS

피보나치 수 ❓ 문제설명 피보나치 수는 F(0) = 0, F(1) = 1일 때, 1 이상의 n에 대하여 F(n) = F(n-1) + F(n-2) 가 적용되는 수 입니다. 예를들어 F(2) = F(0) + F(1) = 0 + 1 = 1 F(3) = F(1) + F(2) = 1 + 1 = 2 F(4) = F(2) + F(3) = 1 + 2 = 3 F(5) = F(3) + F(4) = 2 + 3 = 5 와 같이 이어집니다. 2 이상의 n이 입력되었을 때, n번째 피보나치 수를 1234567으로 나눈 나머지를 리턴하는 함수, solution을 완성해 주세요. 🚫 제한조건 n은 2 이상 100,000 이하인 자연수입니다. ✔ 입출력 예 n return 3 2 5 5 💡 풀이 function solution(n) ..

프로그래머스/Level2(JS)

[프로그래머스] 다음 큰 숫자 - JS

다음 큰 숫자 ❓ 문제설명 자연수 n이 주어졌을 때, n의 다음 큰 숫자는 다음과 같이 정의 합니다. 조건 1. n의 다음 큰 숫자는 n보다 큰 자연수 입니다. 조건 2. n의 다음 큰 숫자와 n은 2진수로 변환했을 때 1의 갯수가 같습니다. 조건3. n의 다음 큰 숫자는 조건 1, 2를 만족하는 수 중 가장 작은 수 입니다. 예를 들어서 78(1001110)의 다음 큰 숫자는 83(1010011)입니다. 자연수 n이 매개변수로 주어질 때, n의 다음 큰 숫자를 return 하는 solution 함수를 완성해주세요. 🚫 제한조건 n은 1,000,000 이하의 자연수 입니다. ✔ 입출력 예 s result 78 83 15 23 💡 풀이 function solution(n) { // 내풀이 // n을 2진수..

프로그래머스/Level2(JS)

[프로그래머스] 숫자의 표현 - JS

숫자의 표현 ❓ 문제설명 Finn은 요즘 수학공부에 빠져 있습니다. 수학 공부를 하던 Finn은 자연수 n을 연속한 자연수들로 표현 하는 방법이 여러개라는 사실을 알게 되었습니다. 예를들어 15는 다음과 같이 4가지로 표현 할 수 있습니다. 1 + 2 + 3 + 4 + 5 = 15 4 + 5 + 6 = 15 7 + 8 = 15 15 = 15 자연수 n이 매개변수로 주어질 때, 연속된 자연수들로 n을 표현하는 방법의 수를 return하는 solution를 완성해주세요. 🚫 제한조건 n은 10,000 이하의 자연수 입니다. ✔ 입출력 예 n result 15 4 💡 풀이 function solution(n) { // 내풀이 // 자기 자신은 항상 포함 let answer = 1; // 등비수열의 합 공식을 ..

프로그래머스/Level2(JS)

[프로그래머스] 이진 변환 반복하기 - JS

이진 변환 반복하기 ❓ 문제설명 0과 1로 이루어진 어떤 문자열 x에 대한 이진 변환을 다음과 같이 정의합니다. x의 모든 0을 제거합니다. x의 길이를 c라고 하면, x를 "c를 2진법으로 표현한 문자열"로 바꿉니다. 예를 들어, x = "0111010"이라면, x에 이진 변환을 가하면 x = "0111010" -> "1111" -> "100" 이 됩니다. 0과 1로 이루어진 문자열 s가 매개변수로 주어집니다. s가 "1"이 될 때까지 계속해서 s에 이진 변환을 가했을 때, 이진 변환의 횟수와 변환 과정에서 제거된 모든 0의 개수를 각각 배열에 담아 return 하도록 solution 함수를 완성해주세요. 🚫 제한조건 s의 길이는 1 이상 150,000 이하입니다. s에는 '1'이 최소 하나 이상 포함..

사소한 개발지식/잡?지식

정규표현식(Regular Expression)

정규표현식(Regular Expression) 1. 정규표현식 문법 🔎 정규표현식 형식 /패턴/플래그 패턴 : 찾고자하는 문자열 플래그 : 정규표현식에서 사용되는 옵션 🔎 정규표현식 매칭 패턴 패턴 의미 a-zA-z 영어알파벳(-으로 범위 지정) ㄱ-ㅎ가-힣 한글 문자(-으로 범위 지정) 0-9 숫자(-으로 범위 지정) . 모든 문자열(숫자, 한글, 영어, 특수기호, 공백 모두 포함. 단, 줄바꿈 제외) \d 숫자 \D 숫자가 아닌 문자열 \w 영어 알파벳, 숫자, 언더스코어(_) \W \w 가 아닌 문자열 \s space (공백 문자열) \S \s 가 아닌 문자열 \특수기호 특수기호 🔎 정규표현식 검색 패턴 기호 의미 | OR [] 괄호안의 문자열들 중 하나 [^문자] 괄호안의 문자를 제외한 문자열 ^..

프로그래머스/Level2(JS)

[프로그래머스] 올바른 괄호 - JS

올바른 괄호 ❓ 문제설명 괄호가 바르게 짝지어졌다는 것은 '(' 문자로 열렸으면 반드시 짝지어서 ')' 문자로 닫혀야 한다는 뜻입니다. 예를 들어 "()()" 또는 "(())()" 는 올바른 괄호입니다. ")()(" 또는 "(()(" 는 올바르지 않은 괄호입니다. '(' 또는 ')' 로만 이루어진 문자열 s가 주어졌을 때, 문자열 s가 올바른 괄호이면 true를 return 하고, 올바르지 않은 괄호이면 false를 return 하는 solution 함수를 완성해 주세요. 🚫 제한조건 문자열 s의 길이 : 100,000 이하의 자연수 문자열 s는 '(' 또는 ')' 로만 이루어져 있습니다. ✔ 입출력 예 s answer "()()" true "(())()" true ")()(" false "(()(" f..

728x90
반응형
KimBY
'분류 전체보기' 카테고리의 글 목록 (4 Page)