요즘 알고리즘을 너어어무 손 놓고 있어서 프로그래머스 레벨 1부터 차근히 풀어보려한다.
알고리즘을 풀면서 메소드 정리와 핵심 풀이를 수도 코드로 정리해야겠다😆😆
abcde에서는 c를 가져오고 qwer에서는 we 두 글자를 가져오는 문제입니다.
풀이 1)
function solution(s) {
let arr = s.split("");
let result = [];
for(let i =0 ; i < arr.length; i++){
if(arr.length % 2 === 0){
result.push(arr[Math.ceil(arr.length/2)-1])
result.push(arr[Math.ceil(arr.length/2)]);
return result.join("");
}
if(arr.length % 2 === 1){
return arr[Math.ceil(arr.length/2)-1];
}
}
}
풀이 2)
const solution= (s) => {
let result= [];
let odd;
let arr = s.split('');
// 홀수 일 경우
if(arr.length % 2 !== 0) {
odd = Math.ceil(arr.length / 2) - 1 ;
result.push(arr[odd]);
return result.join('');
}
// 짝수 일 경우 두 글자 반환
else{
for(let i = (arr.length / 2) - 1 ; i <= arr.length / 2; i++) {
result.push(arr[i]);
}
}
return result.join('');
}
풀이 3)
function solution(s) {
return s.substr(Math.ceil(s.length / 2) - 1, s.length % 2 === 0 ? 2 : 1);
}
const str = 'The quick brown fox jumps over the lazy dog.';
const words = str.split(' ');
console.log(words[3]);
// expected output: "fox"
const chars = str.split('');
console.log(chars[8]);
// expected output: "k"
const strCopy = str.split();
console.log(strCopy);
// expected output: Array ["The quick brown fox jumps over the lazy dog."]
join()
메서드는 배열의 모든 요소를 연결해 하나의 문자열로 만듭니다.const elements = ['Fire', 'Air', 'Water'];
console.log(elements.join());
// expected output: "Fire,Air,Water"
console.log(elements.join(''));
// expected output: "FireAirWater"
console.log(elements.join('-'));
// expected output: "Fire-Air-Water"
주의할점은 substr()
에서 str.substr(start[, length])의 구문이라는 것인데
substr(a,b)
a는 시작 인덱스이고 시작 인덱스로부터의 길이라고 생각해야한다.
const str = 'Mozilla';
console.log(str.substr(1, 2));
// expected output: "oz"
console.log(str.substr(2));
// expected output: "zilla"
Math.ceil(.95); // 1
Math.ceil(4); // 4
Math.ceil(7.004); // 8
Math.ceil(-0.95); // -0
Math.ceil(-4); // -4
Math.ceil(-7.004); // -7