728x90
https://school.programmers.co.kr/learn/courses/30/lessons/12903
JS
문제
단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다.
재한사항
s는 길이가 1 이상, 100이하인 스트링입니다.
계획
문자열 변수를 배열로 만들기
배열.길이%2로 홀짝 구분
짝 - 배열[배열길이/2]과 배열[배열길이/2 +1]을 문자열로 바꿔서 반환
홀 - round(반올림)이나 ceil(올림)를 사용해 가운데 글자 반환
참고, 풀이
split() : 문자열을 배열로 변환
let array = string.split(separator);
join() : 배열을 문자열로 변환
let string = array.join(separator);
오류 : 올림이 아니라 내림을 했어야 했음, 짝수 출력에 join이 의도한 대로 되지 않음
실행한 결괏값 "e,r"이 기댓값 "we"과 다릅니다.
function solution(s) {
var answer = '';
let arr = s.split('')
let halfB = arr.length%2
let halfN = Math.ceil(arr.length/2)
if(halfB){
//홀
answer = arr[halfN]
}else{
//짝
let halfA=[arr[halfN],arr[halfN+1]]
answer = halfA.join()
}
return answer;
}
답
function solution(s) {
var answer = '';
let arr = s.split(''); // 문자열을 문자 배열로 변환
let length = arr.length;
let halfN = Math.floor(length / 2); // 반 나누기
if (length % 2 === 0) {
// 짝수일 때
answer = arr[halfN - 1] + arr[halfN]; // 가운데 두 글자
} else {
// 홀수일 때
answer = arr[halfN]; // 가운데 한 글자
}
return answer;
}
코드 간략화하기
function solution(s) {
let mid = Math.floor(s.length / 2);
return s.length % 2 === 0 ? s[mid - 1] + s[mid] : s[mid];
}
'내일배움 과제 > 기타 과제' 카테고리의 다른 글
알고리즘 32번 내적 (0) | 2024.12.11 |
---|---|
알고리즘 31번 - 수박수박수박수박수박수? (0) | 2024.12.10 |
알고리즘 29번 - 제일 작은 수 제거하기 (2) | 2024.12.06 |
알고리즘 28 - 없는 숫자 더하기 (0) | 2024.12.05 |
알고리즌 27 핸드폰 번호 가리기 (1) | 2024.12.04 |