모음 제거
영어에선 a, e, i, o, u 다섯 가지 알파벳을 모음으로 분류합니다. 문자열 my_string이 매개변수로 주어질 때 모음을 제거한 문자열을 return하도록 solution 함수를 완성해주세요.
- my_string은 소문자와 공백으로 이루어져 있습니다.
- 1 ≤ my_string의 길이 ≤ 1,000
function solution(my_string) {
let answer = '';
const vowels = ['a', 'e', 'i', 'o', 'u'];
for(let i = 0; i < my_string.length; i++) {
const item = my_string[i];
let isVowel = false;
for(let j = 0; j < vowels.length; j++) {
if(item === vowels[j]) {
isVowel = true;
break;
}
}
if(isVowel) continue;
answer += item;
}
return answer;
}
// 다른 사람의 풀이
function solution(my_string) {
return my_string.replace(/[aeiou]/g, '');
}
function solution(my_string) {
let answer = my_string.split('');
for(let i = 0; i < answer.length; i++){
switch(answer[i]) {
case 'a':
case 'e':
case 'i':
case 'o':
case 'u':
answer.splice(i, 1);
i--;
break;
}
}
return answer.join('');
}
function solution(my_string) {
return Array.from(my_string).filter(t => !['a', 'e', 'i', 'o', 'u'].includes(t)).join('');
}
<다른 사람의 풀이에 대한 이해>
정규표현식
switch문을 통한 해결
split()
Array.from()
filter()
includes() : 배열과 문자열에서 사용할 수 있는 메소드
join()
문자열 정렬하기 (1)
문자열 my_string이 매개변수로 주어질 때, my_string 안에 있는 숫자만 골라 오름차순 정렬한 리스트를 return 하도록 solution 함수를 작성해보세요.
- 1 ≤ my_string의 길이 ≤ 100
- my_string에는 숫자가 한 개 이상 포함되어 있습니다.
- my_string은 영어 소문자 또는 0부터 9까지의 숫자로 이루어져 있습니다. - - -
function solution(my_string) {
let answer = [];
for(let i = 0; i < my_string.length; i++) {
const item = Number(my_string[i]);
if(Number.isNaN(item)) {
continue;
}
answer.push(item);
}
return answer.sort((a,b) => a - b);
}
// 다른 사람의 풀이
function solution(my_string) {
return my_string.match(/\d/g).sort((a, b) => a - b).map(n => Number(n));
}
Number() 함수를 통해, 형변환을 시켜서 주어진 문자열로 된 숫자가 있다면 숫자로 바뀐다. 그 다음 isNaN() 메소드를 사용하여 문자열의 요소들이 숫자인지 여부를 파악한다. isNaN() 메소드는 결과값을 boolean으로 반환해준다.
<다른 사람의 풀이에 대한 이해>
정규표현식
숨어있는 숫자의 덧셈 (1)
문자열 my_string이 매개변수로 주어집니다. my_string 안의 모든 자연수들의 합을 return하도록 solution 함수를 완성해주세요.
- 1 ≤ my_string의 길이 ≤ 1,000
- my_string은 소문자, 대문자 그리고 한자리 자연수로만 구성되어있습니다.
function solution(my_string) {
let answer = 0;
for(let i = 0; i < my_string.length; i++) {
const item = Number(my_string[i]);
if(Number.isNaN(item)) continue;
answer += Number(item);
}
return answer;
}
// 다른 사람의 풀이
function solution(my_string) {
const answer =
my_string.replace(/[^0-9]/g, '')
.split('')
.reduce((acc, curr) => acc + Number(curr), 0);
return answer;
}
function solution(my_string) {
let sum = 0;
for (const ch of my_string) {
if (!isNaN(ch)) sum += +ch;
}
return sum;
}
위의 문제와 거의 비슷한 성격
<다른 사람의 풀이에 대한 이해>
정규 분포식
replace()
split()
reduce()
for .. of 반복문
소인수분해
소인수분해란 어떤 수를 소수들의 곱으로 표현하는 것입니다. 예를 들어 12를 소인수 분해하면 2 * 2 * 3 으로 나타낼 수 있습니다. 따라서 12의 소인수는 2와 3입니다. 자연수 n이 매개변수로 주어질 때 n의 소인수를 오름차순으로 담은 배열을 return하도록 solution 함수를 완성해주세요.
- 2 ≤ n ≤ 10,000
function solution(n) {
let answer = [];
for(let i = 2; n !== 1; i++) {
if(n % i === 0) {
while(n % i === 0) n /= i;
answer.push(i);
}
}
return answer;
}
참고 영상
'코딩테스트 > 프로그래머스 0단계 - 입문' 카테고리의 다른 글
프로그래머스 0단계 - Day14 조건문, 반복문, 시뮬레이션, 문자열 (0) | 2024.03.20 |
---|---|
프로그래머스 0단계 - Day13 문자열, 배열, 사칙연산, 수학, 조건문 (0) | 2024.03.20 |
프로그래머스 0단계 - Day11 수학, 반복문 (0) | 2024.03.19 |
프로그래머스 0단계 - Day10 조건문, 배열, 수학, 시뮬레이션 (0) | 2024.03.18 |
프로그래머스 0단계 - Day9 수학, 문자열, 해시, 완전탐색, 조건문 (0) | 2024.03.18 |
댓글