210623 TIL 프로그래머스 코테연습
JadenCase 문자열 만들기
JadenCase란 모든 단어의 첫 문자가 대문자이고, 그 외의 알파벳은 소문자인 문자열입니다. 문자열 s가 주어졌을 때, s를 JadenCase로 바꾼 문자열을 리턴하는 함수, solution을 완성해주세요.
- s는 길이 1 이상인 문자열입니다.
- s는 알파벳과 공백문자(" ")로 이루어져 있습니다.
- 첫 문자가 영문이 아닐때에는 이어지는 영문은 소문자로 씁니다.
"3people unFollowed me" 👉 "3people Unfollowed Me"
"for the last week" 👉 "For The Last Week"
function solution(s) {
var arr = [];
let split = s.split(" ")
split.forEach(word=>{
let str = ""
let a = word.slice(0,1).toUpperCase()
let b = word.slice(1).toLowerCase()
str += a
str += b
arr.push(str)
})
return arr.join(" ");
}
👉 풀이과정
- 단어를 띄어쓰기 단위로 쪼개기
- 첫문자
a
에toUpperCase()
, 그 외 문자들b
는 `toLowerCase() - 문자들을
arr
에 집어넣고.join(" ")
으로 다시 띄어쓰기 해줌.
👉 다른사람 풀이
function solution(s) {
return s.split(" ").map(v => v.charAt(0).toUpperCase() + v.substring(1).toLowerCase()).join(" ");
}
map과 charAt을 이용해 푼 과정.
charAt()
= 문자열에서 특정 인덱스에 위치하는 유니코드 단일문자를 반환.
하샤드 수
양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다. 예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다. 자연수 x를 입력받아 x가 하샤드 수인지 아닌지 검사하는 함수, solution을 완성해주세요.
x는 1 이상, 10000 이하인 정수입니다.
10 true
12 true
11 false
13 false
function solution(x) {
var answer;
let num = 0;
let str = x.toString()
for(let i=0; i<str.length;i++){
num += +str[i];
}
x % num === 0 ? answer=true : answer=false;
return answer;
}
👉 풀이과정
- num를 str으로 변환
for
문을 사용해 각각의 숫자들을 다 더한 값을 num에 할당.- x를 num로 나눈 숫자가 0으로 나누어 떨어진다면 true, 아니면 false를 할당함.
👉 다른사람 풀이
let num = x;
let sum = 0;
do {
sum += x%10;
x = Math.floor(x/10);
} while (x>0);
return !(num%sum);
형변환을 시켜서 하면 근소하지만 느리게 나온다. 숫자형 그대로 쓰면 빠르게 나왔음.
Author And Source
이 문제에 관하여(210623 TIL 프로그래머스 코테연습), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@313yang/210623-TIL-프로그래머스-코테연습저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)