[프로그래머스] Lv.2 타겟 넘버 - JavaScript
·
CodingTest
문제 설명n개의 음이 아닌 정수들이 있습니다. 이 정수들을 순서를 바꾸지 않고 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 있습니다. 사용할 수 있는 숫자가 담긴 배열 numbers, 타겟 넘버 target이 매개변수로 주어질 때 숫자를 적절히 더하고 빼서 타겟 넘버를 만드는 방법의 수를 return 하도록 solution 함수를 작성해주세요. 제한 조건주어지는 숫자의 개수는 2개 이상 20개 이하입니다.각 숫자는 1 이상 50 이하인 자연수입니다.타겟 넘버는 1 이상 1000 이하인 자연수입니다.입출력 예numberstargetreturn[1,1,1,1,1]35[4,1,2,1]42 이 문제는 DFS (깊이우선..
[프로그래머스] Lv.2 짝지어 제거하기 - JavaScript
·
CodingTest
문제 설명짝지어 제거하기는, 알파벳 소문자로 이루어진 문자열을 가지고 시작합니다. 먼저 문자열에서 같은 알파벳이 2개 붙어 있는 짝을 찾습니다. 그다음, 그 둘을 제거한 뒤, 앞뒤로 문자열을 이어 붙입니다. 이 과정을 반복해서 문자열을 모두 제거한다면 짝지어 제거하기가 종료됩니다. 문자열 S가 주어졌을 때, 짝지어 제거하기를 성공적으로 수행할 수 있는지 반환하는 함수를 완성해 주세요. 성공적으로 수행할 수 있으면 1을, 아닐 경우 0을 리턴해주면 됩니다.예를 들어, 문자열 S = baabaa 라면b aa baa → bb aa → aa →의 순서로 문자열을 모두 제거할 수 있으므로 1을 반환합니다. 제한 조건문자열의 길이 : 1,000,000 이하의 자연수문자열은 모두 소문자로 이루어져 있습니다. 입출력 ..
[프로그래머스] Lv.2 괄호 회전하기 - JavaScript
·
CodingTest
괄호 회전하기다음 규칙을 지키는 문자열을 올바른 괄호 문자열이라고 정의합니다.(), [], {} 는 모두 올바른 괄호 문자열입니다.만약 A가 올바른 괄호 문자열이라면, (A), [A], {A} 도 올바른 괄호 문자열입니다. 예를 들어, [] 가 올바른 괄호 문자열이므로, ([]) 도 올바른 괄호 문자열입니다.만약 A, B가 올바른 괄호 문자열이라면, AB 도 올바른 괄호 문자열입니다. 예를 들어, {} 와 ([]) 가 올바른 괄호 문자열이므로, {}([]) 도 올바른 괄호 문자열입니다.대괄호, 중괄호, 그리고 소괄호로 이루어진 문자열 s가 매개변수로 주어집니다. 이 s를 왼쪽으로 x (0 ≤ x s가 올바른 괄호 문자열이 되게 하는 x의 개수를 return 하도록 solution 함수를 완성해주세요. ..
[프로그래머스] Lv.1 모의고사 - JavaScript
·
CodingTest
문제 설명수포자는 수학을 포기한 사람의 준말입니다. 수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려 합니다. 수포자는 1번 문제부터 마지막 문제까지 다음과 같이 찍습니다. 1번 수포자가 찍는 방식: 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, ...2번 수포자가 찍는 방식: 2, 1, 2, 3, 2, 4, 2, 5, 2, 1, 2, 3, 2, 4, 2, 5, ...3번 수포자가 찍는 방식: 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, ... 1번 문제부터 마지막 문제까지의 정답이 순서대로 들은 배열 answers가 주어졌을 때, 가장 많은 문제를 맞힌 사람이 누구인지 배열에 담아 return 하도록 solution 함수를 작성해주..
[프로그래머스] Lv.1 소수 만들기 - JavaScript
·
CodingTest
문제 설명주어진 숫자 중 3개의 수를 더했을 때 소수가 되는 경우의 개수를 구하려고 합니다. 숫자들이 들어있는 배열 nums가 매개변수로 주어질 때, nums에 있는 숫자들 중 서로 다른 3개를 골라 더했을 때 소수가 되는 경우의 개수를 return 하도록 solution 함수를 완성해주세요. 제한 사항nums에 들어있는 숫자의 개수는 3개 이상 50개 이하입니다.nums의 각 원소는 1 이상 1,000 이하의 자연수이며, 중복된 숫자가 들어있지 않습니다. 입출력 예numbersresult[1,2,3,4]1[1,2,7,6,4]4 문제 풀이function isPrime(x){ for(let i=2; i 이번 문제는 비교적 쉽게 풀었다. 다만 처음에 3중 for문을 작성했을때 3개 다 범위를 nums...
[프로그래머스] Lv.1 소수 찾기 - JavaScript
·
CodingTest
문제 설명1부터 입력받은 숫자 n 사이에 있는 소수의 개수를 반환하는 함수, solution을 만들어 보세요.소수는 1과 자기 자신으로만 나누어지는 수를 의미합니다.(1은 소수가 아닙니다.) 제한 사항n은 2이상 1000000이하의 자연수입니다. 입출력 예numbersresult10453 첫번째 시도한 풀이function isPrime(x){ for(let i=2; i 2부터 소수이므로, 숫자 2부터 n까지 순회하면서, 각 숫자에 대해 isPrime(소수 인지 판별하는 함수)를 호출해서, 소수일 경우 answer의 값을 증가시켜서 총 소수의 갯수를 계산한다. isPrime은 2부터 Math.sqrt(x)까지의 숫자로 나누고, 나누어떨어지면 소수가 아니라고 판단하였다. 테스트케이스는 다 통과했는..
[프로그래머스] Lv.1 두 개 뽑아서 더하기 - JavaScript
·
CodingTest
문제 설명정수 배열 numbers가 주어집니다. numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return 하도록 solution 함수를 완성해주세요. 제한 사항numbers의 길이는 2 이상 100 이하입니다.numbers의 모든 수는 0 이상 100 이하입니다. 입출력 예numbersresult[2,1,3,4,1][2,3,4,5,6,7][5,0,2,7][2,5,7,9,12] 문제 풀이function solution(numbers) { var answer = []; var sum=0; for(let i=0; ia-b);} 뭔가 깔끔하게 푼 것 같아서 맘에 든다 ㅎ.ㅎ우선 두 개의 수를 뽑아 더해서 나올 수 ..
[프로그래머스] Lv.1 이상한 문자 만들기 - JavaScript
·
CodingTest
문제 설명문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을 리턴하는 함수, solution을 완성하세요. 제한 사항문자열 전체의 짝/홀수 인덱스가 아니라, 단어(공백을 기준)별로 짝/홀수 인덱스를 판단해야합니다.첫 번째 글자는 0번째 인덱스로 보아 짝수번째 알파벳으로 처리해야 합니다. 입출력 예sreturn "try hello world""Try HeLlO WoRlD" 문제 풀이function solution(s) { var answer = []; var words = s.split(" "); // 이렇게되면 try, hello, world로 나누어짐 ..
[프로그래머스] Lv.1 정수 제곱근 판별 - JavaScript
·
CodingTest
문제 설명 임의의 양의 정수 n에 대해, n이 어떤 양의 정수 x의 제곱인지 아닌지 판단하려 합니다. n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, n이 양의 정수 x의 제곱이 아니라면 -1을 리턴하는 함수를 완성하세요. 제한 사항 n은 1이상, 50000000000000 이하인 양의 정수입니다. 입출력 예 n return 12 144 3 -1 문제 풀이 function solution(n) { var answer = 0; for(let i=1; i*i
[프로그래머스] Lv.1 핸드폰 번호 가리기 - JavaScript
·
CodingTest
문제 설명 프로그래머스 모바일은 개인정보 보호를 위해 고지서를 보낼 때 고객들의 전화번호의 일부를 가립니다. 전화번호가 문자열 phone_number로 주어졌을 때, 전화번호의 뒷 4자리를 제외한 나머지 숫자를 전부 *으로 가린 문자열을 리턴하는 함수, solution을 완성해주세요. 제한 조건 phone_number는 길이 4 이상, 20이하인 문자열입니다. 입출력 예 phone_number return "01033334444" "*******4444" "027778888" "*****8888" 문제 풀이 function solution(phone_number) { var answer = ''; for(let i=0; i=phone_number.length-4) answer+=phone_number[i..