문제 설명 문자열 s에 나타나는 문자를 큰것부터 작은 순으로 정렬해 새로운 문자열을 리턴하는 함수, solution을 완성해주세요. s는 영문 대소문자로만 구성되어 있으며, 대문자는 소문자보다 작은 것으로 간주합니다. 제한 사항 str은 길이 1 이상인 문자열입니다. 문제 풀이 방법 이 문제는 주어진 문자열 s를 정렬하는 것으로 대문자는 소문자보다 작은 것으로 간주한다. 기본적으로는 대문자가 더 앞으로 정렬되며, abc... 순으로 정렬되므로 순서를 한번 뒤집어준다. 그리고 나온 배열을 문자열로 합쳐주면 된다. 내가 작성한 코드 const solution = (s) => { return s.split('').sort().reverse().join(''); }
프로그래머스
문제 설명 두 정수 a, b가 주어졌을 때 a와 b 사이에 속한 모든 정수의 합을 리턴하는 함수, solution을 완성하세요. 예를 들어 a = 3, b = 5인 경우, 3 + 4 + 5 = 12이므로 12를 리턴합니다. 제한 사항 a와 b가 같은 경우는 둘 중 아무 수나 리턴하세요. a와 b는 -10,000,000 이상 10,000,000 이하인 정수입니다. a와 b의 대소관계는 정해져있지 않습니다. 문제 풀이 방법 이 문제를 풀면서 내가 얼마나 학창시절에 공부를 안했는지 느꼈다. 그저 if문과 for문을 이용해 딱딱하게 코드를 짜려했다.... 조금 멀리서 바라보면 이 문제의 핵심은 a와 b 사이에 속한 모드 정수의 합이라는 것이다. 이 말의 다른 의미는 등차 수열의 합이라 봐도 된다..... 헣....
문제 설명 정수 num이 짝수일 경우 "Even"을 반환하고 홀수인 경우 "Odd"를 반환하는 함수, solution을 완성해주세요. 제한 사항 num은 int 범위의 정수입니다. 0은 짝수입니다. 문제 풀이 방법 제한 조건에서 0도 짝수라는 조건이 있기 때문에 OR문을 이용해 num이 0일 때와 2로 나누었을 때 나머지가 0인 경우는 "Even"을 반환한다. 나머지 조건에서는 홀수의 경우만 남기 때문에 "Odd"를 반환한다. 내가 작성한 코드 const solution = (num) => { if(num === 0 || num % 2 === 0){ return "Even"; } else{ return "Odd"; } }
문제 설명 N개의 스티커가 원형으로 연결되어 있습니다. 다음 그림은 N = 8인 경우의 예시입니다. 원형으로 연결된 스티커에서 몇 장의 스티커를 뜯어내어 뜯어낸 스티커에 적힌 숫자의 합이 최대가 되도록 하고 싶습니다. 단 스티커 한 장을 뜯어내면 양쪽으로 인접해있는 스티커는 찢어져서 사용할 수 없게 됩니다. 예를 들어 위 그림에서 14가 적힌 스티커를 뜯으면 인접해있는 10, 6이 적힌 스티커는 사용할 수 없습니다. 스티커에 적힌 숫자가 배열 형태로 주어질 때, 스티커를 뜯어내어 얻을 수 있는 숫자의 합의 최댓값을 return 하는 solution 함수를 완성해 주세요. 원형의 스티커 모양을 위해 배열의 첫 번째 원소와 마지막 원소가 서로 연결되어 있다고 간주합니다. 제한 사항 sticker는 원형으로 ..
문제 설명 자연수 N이 주어지면, N의 각 자릿수의 합을 구해서 return 하는 solution 함수를 만들어 주세요. 예를들어 N = 123이면 1 + 2 + 3 = 6을 return 하면 됩니다. 제한 사항 N의 범위 : 100,000,000 이하의 자연수 문제 풀이 방법 n을 split('')을 이용해 나눈뒤 reduce에서 parseInt를 통해 수로 변환후 더해준다. 내가 작성한 코드 const solution = (n) => { return((n+'').split('').reduce((p, c) => p + (parseInt(c)), 0)); }
문제 설명 자연수 n이 매개변수로 주어집니다. n을 x로 나눈 나머지가 1이 되도록 하는 가장 작은 자연수 x를 return 하도록 solution 함수를 완성해주세요. 답이 항상 존재함은 증명될 수 있습니다. 제한 사항 3 ≤ n ≤ 1,000,000 문제 풀이 방법 단순 반복을 통한 완전탐색 알고리즘으로 생각되는 문제이다. for문을 이용해 2부터 시작하여 n미만의 수 까지 반복하여 나누었을 때 나머지가 1이되는 수를 찾자 내가 작성한 코드 function solution(n) { // 낮은 수 부터 시작하는 반복문을 생각하고 코드를 작성해 보자(단순반복) for(let i=2; i