※ 문제
소문자로 된 단어(문자열)가 입력되면 그 단어의 가운데 문자를 출력하는 프로그램을 작성하세요. 단 단어의 길이가 짝수일 경우 가운데 2개의 문자를 출력합니다.
▣ 입력설명
첫 줄에 문자열이 입력된다. 문자열의 길이는 100을 넘지 않습니다.
▣ 출력설명
첫 줄에 가운데 문자를 출력합니다.
▣ 입력예제 1
study
▣ 출력예제 1
u
▣ 입력예제 2
good
▣ 출력예제 2
oo
※ 코드
<html>
<head>
<meta charset="UTF-8">
<title>출력결과</title>
</head>
<body>
<script>
function solution(s) {
let answer = "";
let mid = Math.floor(s.length / 2);
console.log(mid);
if (s.length % 2 === 1) {
answer += s.substring(mid, mid + 1);
// answer += s.substr(mid, 1);
} else {
answer += s.substring(mid - 1, mid + 1);
// answer += s.substr(mid - 1, 2);
}
return answer;
}
console.log(solution("teacher"));
</script>
</body>
</html>
※ 설명
가운데 문자의 index를 구하기 위해 Math.floor()함수를 사용하여 문자열 s의 length에서 2를 나눈 값을 mid변수에 할당한다.
이후 s.length()를 2로 나누었을 때 나머지가 1일 경우 홀수이므로 substring()나 substr()와 같은 내장 함수를 사용하여 중앙값을 answer에 더해준다.
answer += s.substring(mid, mid + 1) // mid값 부터 mid + 1 이전까지의 값 return
answer += s.substr(mid, 1) // mid값으로 부터 1이전의 값 return
그렇지 않은 경우는 짝수이므로 substring일경우 mid -1에서부터 mid +1 이전까지의 값을 answer에 더해준다. substr같은 경우 mid -1에서 부터 2이전까지의 값을 answer에 더해준다.
// substring 사용
answer += s.substring(mid, mid + 1); // 첫번째 중앙값
answer += s.substring(mid - 1, mid + 1); //두번째 중앙값
// substr 사용
answer += s.substr(mid, 1); // 첫번째 중앙값
answer += s.substr(mid - 1, 2); //두번째 중앙값
※ 핵심
substring(): 문자열의 index의 구간을 사용하여 특정 문자열을 return 받는다.
substr(): 문자열의 index를 기준으로 하여 상수 이전까지의 값을 return 받는다.
해당 내용은 김태원님의 자바스크립트 알고리즘 문제풀이 강의를 듣고 작성한 글입니다.
'🤯 코딩테스트 > Javscript' 카테고리의 다른 글
[자바스크립트 알고리즘 문제풀이(코딩테스트 대비)] Section 01 - 중복 단어 제거 (0) | 2022.01.10 |
---|---|
[자바스크립트 알고리즘 문제풀이(코딩테스트 대비)] Section 01 - 중복 문자 제거 (0) | 2022.01.10 |
[자바스크립트 알고리즘 문제풀이(코딩테스트 대비)] Section 01 - 가장 긴 문자열 (0) | 2022.01.08 |
[자바스크립트 알고리즘 문제풀이(코딩테스트 대비)] Section 01 - 대소문자 변환 (0) | 2022.01.08 |
[자바스크립트 알고리즘 문제풀이(코딩테스트 대비)] Section 01 - 대문자로 통일 (0) | 2022.01.08 |