카일_

Algorithm/프로그래머스

Algorithm/프로그래머스

프로그래머스 | #Lv1 "삼총사"

문제 설명 한국중학교에 다니는 학생들은 각자 정수 번호를 갖고 있습니다. 이 학교 학생 3명의 정수 번호를 더했을 때 0이 되면 3명의 학생은 삼총사라고 합니다. 예를 들어, 5명의 학생이 있고, 각각의 정수 번호가 순서대로 -2, 3, 0, 2, -5일 때, 첫 번째, 세 번째, 네 번째 학생의 정수 번호를 더하면 0이므로 세 학생은 삼총사입니다. 또한, 두 번째, 네 번째, 다섯 번째 학생의 정수 번호를 더해도 0이므로 세 학생도 삼총사입니다. 따라서 이 경우 한국중학교에서는 두 가지 방법으로 삼총사를 만들 수 있습니다. 한국중학교 학생들의 번호를 나타내는 정수 배열 number가 매개변수로 주어질 때, 학생들 중 삼총사를 만들 수 있는 방법의 수를 return 하도록 solution 함수를 완성하세..

Algorithm/프로그래머스

프로그래머스 | #Lv1 "같은 숫자는 싫어"

문제 설명 배열 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 함수를 완성해 주세요. 제한 조건 배열 arr의 크기 : 1,000,000 이하의 자연수 배열 arr의 원소의 크기 : 0보다 크거나..

Algorithm/프로그래머스

프로그래머스 | #Lv1 "폰켓몬"

문제 설명 당신은 폰켓몬을 잡기 위한 오랜 여행 끝에, 홍 박사님의 연구실에 도착했습니다. 홍 박사님은 당신에게 자신의 연구실에 있는 총 N 마리의 폰켓몬 중에서 N/2마리를 가져가도 좋다고 했습니다. 홍 박사님 연구실의 폰켓몬은 종류에 따라 번호를 붙여 구분합니다. 따라서 같은 종류의 폰켓몬은 같은 번호를 가지고 있습니다. 예를 들어 연구실에 총 4마리의 폰켓몬이 있고, 각 폰켓몬의 종류 번호가 [3번, 1번, 2번, 3번]이라면 이는 3번 폰켓몬 두 마리, 1번 폰켓몬 한 마리, 2번 폰켓몬 한 마리가 있음을 나타냅니다. 이때, 4마리의 폰켓몬 중 2마리를 고르는 방법은 다음과 같이 6가지가 있습니다. 첫 번째(3번), 두 번째(1번) 폰켓몬을 선택 첫 번째(3번), 세 번째(2번) 폰켓몬을 선택 첫..

Algorithm/프로그래머스

프로그래머스 | #Lv1 "부족한 금액 계산하기"

문제 설명 새로 생긴 놀이기구는 인기가 매우 많아 줄이 끊이질 않습니다. 이 놀이기구의 원래 이용료는 price원 인데, 놀이기구를 N 번 째 이용한다면 원래 이용료의 N배를 받기로 하였습니다. 즉, 처음 이용료가 100이었다면 2번째에는 200, 3번째에는 300으로 요금이 인상됩니다. 놀이기구를 count번 타게 되면 현재 자신이 가지고 있는 금액에서 얼마가 모자라는지를 return 하도록 solution 함수를 완성하세요. 단, 금액이 부족하지 않으면 0을 return 하세요. 제한 조건 놀이기구의 이용료 price : 1 ≤ price ≤ 2,500, price는 자연수 처음 가지고 있던 금액 money : 1 ≤ money ≤ 1,000,000,000, money는 자연수 놀이기구의 이용 횟수 ..

Algorithm/프로그래머스

프로그래머스 | #Lv1 "약수의 개수와 덧셈"

문제 설명 두 정수 left와 right가 매개변수로 주어집니다. left부터 right까지의 모든 수들 중에서, 약수의 개수가 짝수인 수는 더하고, 약수의 개수가 홀수인 수는 뺀 수를 return 하도록 solution 함수를 완성해주세요. 제한 조건 1 ≤ left ≤ right ≤ 1,000 나의 풀이 function solution(left, right) { let answer = 0; for (let i = left; i

Algorithm/프로그래머스

프로그래머스 | #Lv1 "문자열 다루기 기본"

문제 설명 문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있는지 확인해주는 함수, solution을 완성하세요. 예를 들어 s가 "a234"이면 False를 리턴하고 "1234"라면 True를 리턴하면 됩니다. 제한 조건 s는 길이 1 이상, 길이 8 이하인 문자열입니다. s는 영문 알파벳 대소문자 또는 0부터 9까지 숫자로 이루어져 있습니다. 나의 풀이 function solution(s) { if (s.length === 4 || s.length === 6) { if (parseInt(s) == s) { return true; } else { return false; } } else { return false; } } 마무리 처음엔 typeof 를 사용해서 문자인지 숫자인지 구분하려했다. 하지만..

Algorithm/프로그래머스

프로그래머스 | #Lv1 "문자열 내림차순으로 배치하기"

문제 설명 문자열 s에 나타나는 문자를 큰것부터 작은 순으로 정렬해 새로운 문자열을 리턴하는 함수, solution을 완성해주세요. s는 영문 대소문자로만 구성되어 있으며, 대문자는 소문자보다 작은 것으로 간주합니다. 제한 조건 str은 길이 1 이상인 문자열입니다. 나의 풀이 function solution(s) { return s.split('').sort().reverse().join(''); } 마무리 배열의 함수들을 사용해서 간단하게 해결 할 수 있는 문제였다. 한가지 재밌는 점은 sort() 로 정렬할 때 영문은 소문자보다 대문자를 먼저 정렬한다는 점이다.

Algorithm/프로그래머스

프로그래머스 | #Lv1 "내적"

문제 설명 길이가 같은 두 1차원 정수 배열 a, b가 매개변수로 주어집니다. a와 b의 내적을 return 하도록 solution 함수를 완성해주세요. 이때, a와 b의 내적은 a[0]b[0] + a[1]b[1] + ... + a[n-1]*b[n-1] 입니다. (n은 a, b의 길이) 제한 조건 a, b의 길이는 1 이상 1,000 이하입니다. a, b의 모든 수는 -1,000 이상 1,000 이하입니다. 나의 풀이 function solution(a, b) { var answer = 0; for(let i=0; i acc += cur*b[idx], 0) return answer; } 마무리 내적은 서로 다른 두 수열의 자릿수 마다 곱해서 다 더한 값을 말한다. 나는 빈 숫자에 각 수열의 인덱스를 차례..

Algorithm/프로그래머스

프로그래머스 | #Lv1 "없는 숫자 더하기"

문제 설명 0부터 9까지의 숫자 중 일부가 들어있는 정수 배열 numbers가 매개변수로 주어집니다. numbers에서 찾을 수 없는 0부터 9까지의 숫자를 모두 찾아 더한 수를 return 하도록 solution 함수를 완성해주세요. 제한 조건 1 ≤ numbers의 길이 ≤ 9 0 ≤ numbers의 모든 원소 ≤ 9 numbers의 모든 원소는 서로 다릅니다. 나의 풀이 function solution(numbers) { let answer = 0; for (let i = 0; i cur + acc, 0); } 마무리 문제 해석과 어떻게 해야할지 까지는 생각했었다. 0부터 증가시키면서 배열 안에 있는지 확인하기. 근데 배열 함수들을 많이 익히지 못한 상태에서 문제를 마주하니 내가 알고있는 함수만으로..

Algorithm/프로그래머스

프로그래머스 | #Lv1 "가운데 글자 가져오기"

문제 설명 단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다. 제한 조건 s는 길이가 1 이상, 100이하인 스트링입니다. 나의 풀이 function solution(s) { let answer = ''; if (s.length % 2 == 0) { let even = Math.floor(s.length / 2); let evenAnswer = [s[even - 1], s[even]].join(''); return evenAnswer; } else { let odd = Math.floor(s.length / 2); return s[odd]; } } 다른 풀이 function solution(s) { const mid = Ma..