반응형
문제 15번
소문자로 된 단어(문자열)가 입력되면 그 단어의 가운데 문자를 출력하는 프로그램을 작성하세 요. 단 단어의 길이가 짝수일 경우 가운데 2개의 문자를 출력합니다.
🍄 입력설명
첫 줄에 문자열이 입력된다. 문자열의 길이는 100을 넘지 않습니다.
🍄 출력설명
첫 줄에 가운데 문자를 출력합니다.
🍄 입력예제 1
study
🍄 출력예제 1
u
🍄 입력예제 1
good
🍄 출력예제 1
oo
정답 코드
1) substring() 이용
- substr(시작 인덱스, 종료 인덱스 전)
String.prototype.substring()
function solution(s) {
let answer;
let mid = Math.floor(s.length / 2);
if (s.length % 2 === 1) answer = s.substring(mid, mid + 1);
//인덱스로 mid만 짤라낸다.
else answer = s.substring(mid - 1, mid + 1); // 4일 경우 (1,3) = 인덱스 1부터 2까지
return answer;
}
let s = "study";
console.log(solution(s));
2) substr() 이용
- substr(시작 인덱스, 자를 문자열 갯수)
String.prototype.substr()
function solution(s) {
let answer;
let mid = Math.floor(s.length / 2);
//substr(2,4) -> 2번 인덱스부터 4개 뽑기라는 뜻
if (s.length % 2 === 1) answer = s.substr(mid, 1);
else answer = s.substr(mid - 1, 2);
return answer;
}
let s = "study";
console.log(solution(s));
3) Math.floor 이용
- 주어진 숫자와 같거나 작은 정수 중 가장 큰 수를 반환한다.
ex) Math.floor(5.95) => 5 출력
function solution(s) {
let answer;
if (s.length % 2 === 0) {
answer = s[s.length / 2 - 1] + s[s.length / 2];
} else {
answer = s[Math.floor(s.length / 2)];
}
return answer;
}
let s = "good";
console.log(solution(s)); //oo 출력
728x90
반응형
'알고리즘' 카테고리의 다른 글
[JS] 알고리즘 기초 정복 17번 - 중복단어제거 (0) | 2021.07.09 |
---|---|
[JS] 알고리즘 기초 정복 16번 - 중복문자제거 (0) | 2021.07.09 |
[JS] 알고리즘 기초 정복 14번 - 가장 긴 문자열 (0) | 2021.07.09 |
[JS] 알고리즘 기초 정복 13번 - 대소문자 변환 (0) | 2021.07.09 |
[JS] 알고리즘 기초 정복 12번 - 대문자로 통일 (0) | 2021.07.09 |