[알고리즘] 가운데 글자 가져오기
요즘 알고리즘을 너어어무 손 놓고 있어서 프로그래머스 레벨 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);
}
- String.prototype.split() : 문자열을 배열로 나타 낼 수 있다. 문자열을 쪼개서 배열 함수를 사용하고 싶을 때 주로 사용한다.
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."]
- Array.prototype.join() : 배열을 문자열로 나타내고 싶을 때 사용한다.
MDN 설명: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"
- String.prototype.substr(): 문자열에서 범위를 주어 반환 하고 싶을때 사용한다.
주의할점은 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(): 주어진 숫자를 올림할 때 사용한다.
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
Reference
- https://programmers.co.kr/learn/courses/30/lessons/12903
- https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/String/split
- https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/join
- https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Math/ceil
- https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/String/substr
Author And Source
이 문제에 관하여([알고리즘] 가운데 글자 가져오기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@jangwonyoon/알고리즘-가운데-글자-가져오기저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)