📢 공지사항
home

5주차 해설

태그
배열
문자열
종류
해설

팩토리얼

i팩토리얼 (i!)은 1부터 i까지 정수의 곱을 의미합니다. 예를들어 5! = 5 * 4 * 3 * 2 * 1 = 120 입니다. 정수 n이 주어질 때 다음 조건을 만족하는 가장 큰 정수 i를 return 하도록 solution 함수를 완성해주세요.
i! ≤ n

생각하기 쉬운 풀이

function solution(n) { var i = 1 var fact = 1 while ( true ) { if ( fact > n ) { return i-1; } else { i ++; fact *= i; } } }
JavaScript
복사

k의 개수

1부터 13까지의 수에서, 1은 1, 10, 11, 12, 13 이렇게 총 6번 등장합니다. 정수 ijk가 매개변수로 주어질 때, i부터 j까지 k가 몇 번 등장하는지 return 하도록 solution 함수를 완성해주세요.

생각하기 쉬운 풀이

function solution(i, j, k) { var answer = 0; for(let num=i; num<=j ; num++){ //num의 길이가 한자리면 -> 그냥 카운트 if(num == k){ console.log(num) answer++; console.log(answer) } //num의 길이가 두자리 이상이면 -> 쪼개서 카운트 if(num.toString().length >=2){ arr = num.toString().split("") arr.forEach((num)=>{ if(num == k){ answer ++ } }) } } return answer; }
JavaScript
복사

빠른 풀이

function solution(i, j, k) { let a =''; for(i;i<=j;i++){ a += i; } return a.split(k).length-1; }
JavaScript
복사

가까운 수

정수 배열 array와 정수 n이 매개변수로 주어질 때, array에 들어있는 정수 중 n과 가장 가까운 수를 return 하도록 solution 함수를 완성해주세요.

생각하기 쉬운 풀이

function solution(array2, n) { var array = [...array2].sort() var cal = array.map(v => Math.abs(v-n)) //요소에서 n뺀것을 절대값으로 표시 var cal2 = Math.min(...cal) //제일 가까운수의 값 var cal3 = cal.indexOf(cal2) //제일 가까운수의 인덱스 return array[cal3]; }
JavaScript
복사

빠른 풀이

function solution(array, n) { // sort()는 기본적으로 아스키코드 값으로 정렬하지만 매개변수로 들어오는 함수를 기준으로 정렬 가능 // 정렬 기준 : n과의 절댓값이 작은 것이 앞으로 ... 2차 기준은 작은 수가 앞으로 array.sort((a,b) => Math.abs(n - a) - Math.abs(n - b) || a - b); return array[0]; }
JavaScript
복사

잘라서 배열로 저장하기

문자열 my_str과 n이 매개변수로 주어질 때, my_str을 길이 n씩 잘라서 저장한 배열을 return하도록 solution 함수를 완성해주세요.

생각하기 쉬운 풀이

function solution(my_str, n) { var answer = []; for(let i=0; i < my_str.length; i+=n) { answer.push(my_str.substr(i, n)); } return answer; }
JavaScript
복사

빠른 풀이

function solution(my_str, n) { return my_str.match(new RegExp(`.{1,${n}}`, "g")); }
JavaScript
복사

한 번만 등장한 문자

문자열 s가 매개변수로 주어집니다. s에서 한 번만 등장하는 문자를 사전 순으로 정렬한 문자열을 return 하도록 solution 함수를 완성해보세요. 한 번만 등장하는 문자가 없을 경우 빈 문자열을 return 합니다.

생각하기 쉬운 풀이

function solution(s) { var answer = ''; for ( var i=0 ; i<s.length ; i++ ) { if (answer.includes(s[i])) { } else if ( s.split(s[i]).length-1 == 1 ) { answer += s[i]; } } return answer.split("").sort().join(""); }
JavaScript
복사

빠른 풀이

function solution(s) { let res = []; for (let c of s) if (s.indexOf(c) === s.lastIndexOf(c)) res.push(c); return res.sort().join(''); }
JavaScript
복사