가우스의 덧셈 공식이란?1부터 n까지의 합을 구할때 사용하는 공식이다. 1. 첫번째 방법s = 1+2+3+....+ (n-1) + n 2. 두번째 방법s = n + (n-1) + 3 + 2 + 1 이 두방법을 합쳐보면2s = (1+n) + (2+(n-1)) + (3+(n-2)) + ... + ((n-2)+3) + ((n-1)+2) + ((n+1))즉 모든 각 쌍의 합이(n+1) + (n+1) + (n+1) + (n+1) + (n+1) + (n+1) + (n+1) + (n+1)...이 된다. 그렇다면 마지막에 있는 수를 n이라고 했을때 최종 합은s = n * (n+1) / 2 가 된다.3을 예로 들면tot = 1+2+3tot = 3+2+12tot = (1+3)(2+2)(3+1) = 4+4+4 = 12tot..
그리디 알고리즘이란?• Greedy를 직역하면 "욕심많은, 탐욕스러운" 이라는 뜻• 단어의 뜻처럼 선택의 갈림이있을때 최적이라고 생각되는것만을 쫓아 최종 해답에 도달하는 방식의 알고리즘.• 즉, 최적의 값을 구해야 하는 상황에서 사용 되는 근시안적인 방법론.• 항상 최적의 값을 보장하는 것이 아닌 최적의 값의 '근사한 값'을 목표로 함.• 그렇게 때문에 어느정도 최적에 근사한 값을 빠르게 도출할수 있는 장점이 있음.• 그리디 알고리즘은 근사 알고리즘으로 사용할 수 있다.• 탐욕 알고리즘을 적용할 수 있는 문제들은 지역적으로 최적이면서 전역적으로 최적인 문제들이어야 한다.더보기근시안적 방법론• 단기 목표를 중심으로한 전략적인 접근 방법을 의미.• 주로 현재의 문제를 해결하는 데 초첨을 맞추며, 장기적인 전..
문제 설명 두 정수 X, Y의 임의의 자리에서 공통으로 나타나는 정수 k(0 ≤ k ≤ 9)들을 이용하여 만들 수 있는 가장 큰 정수를두 수의 짝꿍이라 합니다 (단, 공통으로 나타나는 정수 중 서로 짝지을 수 있는 숫자만 사용합니다). X, Y의 짝꿍이 존재하지 않으면, 짝꿍은 -1입니다. X, Y의 짝꿍이 0으로만 구성되어 있다면, 짝꿍은 0입니다. 예를 들어, X = 3403이고 Y = 13203이라면, X와 Y의 짝꿍은 X와 Y에서 공통으로 나타나는 3, 0, 3으로 만들 수 있는 가장 큰 정수인 330입니다. 다른 예시로 X = 5525이고 Y = 1255이면 X와 Y의 짝꿍은 X와 Y에서 공통으로 나타나는 2, 5, 5로 만들 수 있는 가장 큰 정수인 552입니다 (X에는 5가 3개, Y에는 5..
문제 설명 숫자나라 기사단의 각 기사에게는 1번부터 number까지 번호가 지정되어 있습니다. 기사들은 무기점에서 무기를 구매하려고 합니다. 각 기사는 자신의 기사 번호의 약수 개수에 해당하는 공격력을 가진 무기를 구매하려 합니다. 단, 이웃나라와의 협약에 의해 공격력의 제한수치를 정하고, 제한수치보다 큰 공격력을 가진 무기를 구매해야 하는 기사는 협약기관에서 정한 공격력을 가지는 무기를 구매해야 합니다. 예를 들어, 15번으로 지정된 기사단원은 15의 약수가 1, 3, 5, 15로 4개 이므로, 공격력이 4인 무기를 구매합니다. 만약, 이웃나라와의 협약으로 정해진 공격력의 제한수치가 3이고 제한수치를 초과한 기사가 사용할 무기의 공격력이 2라면, 15번으로 지정된 기사단원은 무기점에서 공격력이 2인 무..
내 문제 풀이 function solution(s) { let arr = s.split(""); let middleS = Math.floor(arr.length/2) let answer = arr.length%2===1?arr.slice(middleS,middleS+1) : arr.slice(middleS-1,middleS+1) return answer.join('') } console.log(solution("abcde")); 1. 주어진 문자열을 하나씩 나눠준다. 2. 배열로 들어간 각가의 문자의 길이를 반으로 나눠준다. 대신 반으로 나눈 몫이 소수점 아래로 내려가면 내림해준다. 3. 배열의 길이가 만약 홀수이면 반으로나눈 자리를 slice메서드를 이용해 새로운 배열에 넣어주고 짝수이면 해당배열-1해..
문제설명 프로그래머스 모바일은 개인정보 보호를 위해 고지서를 보낼 때 고객들의 전화번호의 일부를 가립니다. 전화번호가 문자열 phone_number로 주어졌을 때, 전화번호의 뒷 4자리를 제외한 나머지 숫자를 전부 *으로 가린 문자열을 리턴하는 함수, solution을 완성해주세요. 제한조건 phone_number는 길이 4 이상, 20이하인 문자열입니다. 입출력 예시 phone_number return "01033334444" "*******4444" "027778888" "*****8888" 나의 풀이 function solution(phone_number) { let numberArr = phone_number.split('') for (let i = 0; i < numberArr.length-4;..
문제 설명 함수 solution은 정수 x와 자연수 n을 입력 받아, x부터 시작해 x씩 증가하는 숫자를 n개 지니는 리스트를 리턴해야 합니다. 다음 제한 조건을 보고, 조건을 만족하는 함수, solution을 완성해주세요. 제한 조건 x는 -10000000 이상, 10000000 이하인 정수입니다. n은 1000 이하인 자연수입니다. 입출력 예 x n result 2 5 [2,4,6,8,10] -4 2 [-4, -8] 4 3 [4,8,12] 내풀이 - 빈 배열을 만들어서 값을 더해주고 넣어준뒤 그 배열이 n-1만큼 만들어지면 return해라입니다. function solution(x, n) { var answer = []; let sumNum = 0 while(answer.length (i + 1) *..