문제 설명
단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다.
재한사항
- s는 길이가 1 이상, 100이하인 스트링입니다.
입출력 예
"abcde" | "c" |
"qwer" | "we" |
나의 풀이
function solution(s) {
let strLength = s.length;
let str = Math.round(s.length / 2) - 1;
if(strLength % 2 == 0 ) {
return s.slice(str, str+2)
} else {
return s.slice(str, str+1)
}
}
이번 풀이는 사실 구글링을 많이해서 풀긴했는데, slice로 앞뒤로 문자를 잘라 중간에만 남도록 하는 것인데
Math.round는 반올림을 하는 메서드이다. 이거 말고도 Math.floor를 사용했어도 될 거 같다.
뭔가 머리속에는 함수가 떠오르는데 이걸 쉽게 사용하지 못하겠다..
다른 사람의 풀이
function solution(s) {
return s.substr(Math.ceil(s.length / 2) - 1, s.length % 2 === 0 ? 2 : 1);
}
다른 사람의 풀이는 삼항 연산자를 이용해서. 푼거 같다.
math.celi는 작은수 큰수 중에 가장 작은수로 변환해주는 거다. 진짜 이렇게 푸는 사람들 경이롭다...
열심히 공부해야겠다.
출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges
'알고리즘 > lv 1' 카테고리의 다른 글
JS 알고리즘 Lv.1 음양 더하기 (0) | 2023.06.16 |
---|---|
JS 알고리즘 Lv.1 없는 숫자 더하기 (0) | 2023.06.16 |
JS 알고리즘 Lv.1 두 정수 사이의 합 (0) | 2023.06.16 |
JS 알고리즘 Lv.1 짝수와 홀수 (0) | 2023.06.16 |
JS 알고리즘 Lv.1 직사각형 별찍기 (1) | 2023.06.16 |