[프로그래머스] Level1. 가운데 글자 가져오기
가운데 글자 가져오기
✍ 문제 설명
단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요.
단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다.
✍ 제한사항
- s는 길이가 1이상, 100이하인 스트링입니다.
✍ 입출력 예
s | return |
---|---|
"abcde" | "c" |
"qwer" | "we" |
❓ 문제를 읽고나서 생각
1. 짝수, 홀수!!!
2. 짝수일 때 두글자를 어떻게 반환해야하지.. 문자열을 어떻게 잘라야하지?
// ( solution.js )
// 예) s : "abcde"일 경우
function solution(s) {
var answer = '';
let stringStart = Math.ceil(s.length / 2)-1;
// 문자열 자를 때 시작위치
console.log(stringStart); // 2
let stringNumber = s.length % 2 === 0 ? 2 : 1;
// 자를 문자열의 길이, 짝수일경우 2, 홀수일경우 1 반환하도록 삼항연산자 사용
console.log(stringNumber); // 1
answer = s.substr(stringStart, stringNumber);
console.log(answer); // c
return answer;
}
<출처 - 모던자바스크립트 Deep Dive>
❓ Math.ceil
Math.ceil();
Math.ceil 메서드는 인수로 전달된 숫자의 소수점 이하를 올림한 정수로 반환한다.
소수점 이하를 올림하면 더 큰 정수가 된다.
예를 들어, 1.4의 소수점 이하를 올림하면 2가 되고, -1.4의 소수점 이하를 올림하면 -1이 된다.
Math.ceil(1.4); // 2
Math.ceil(1.6); // 2
Math.ceil(-1.4); // -1
Math.ceil(-1.6); // -1
Math.ceil(1); // 1
Math.ceil(); // NaN
<출처 - MDN Web Docs : https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/String/substr>
❓ substr
str.substr(start, length);
substr()는 start에서 문자들을 추출을 시작하여 length만큼 문자들을 수집한다.
- start : 추출하고자 하는 문자들의 시작위치
만약 음수일 경우,문자열총길이 + start
의 값으로 취급한다.
예를 들면, start에 -3을 설정하면 자동적으로문자열총길이 -3
으로 설정된다. - length : 추출할 문자들의 총 숫자
length가0 또는 음수
일 경우, substr()은빈 문자열을 반환
되고,
length가생략
되면 substr()은문자열의 끝까지 추출
하여 반환한다.
var str = 'abcdefghij';
str = str.substr(1, 2);
console.log(str); // bc
str1 = str.substr(-3, 2);
console.log(str1); // hi
str2 = str.substr(-3);
console.log(str2); // hij
str3 = str.substr(1);
console.log(str3); // bcdefghij
str4 = str.substr(-20, 2);
console.log(str4); // ab
str5 = str.substr(20, 2);
console.log(str5); // ' '(빈문자열)
<출처 - 모던자바스크립트 Deep Dive>
❓ substring
- substring 메서드는 대상 문자열에서 첫 번째 인수로 전달받은 인덱스에 위치하는 문자부터 두 번째 인수로 전달받은 인덱스에 위치하는 문자의 바로 이전까지의 부분 문자열을 반환한다.
const str = 'Hello World';
// index 1부터 4이전까지의 부분 문자열을 반환한다.
str.substring(1, 4);
console.log(str); // ell
- substring 메서드의 두 번째 인수는 생략이 가능하다. 이 때 첫 번째 인수로 전달한 인덱스에 위치하는 문자부터 마지막 문자까지 부분 문자열을 반환한다.
const str = 'Hello World';
//
str.substring(1);
console.log(str); // ello World
- substring메서드의 첫 번째 인수는 두 번째 인수보다 작은 정수이어야 정상이지만, 다음과 같이 인수를 전달하여도 정상 동작한다.
① 첫 번째 인수 > 두 번째 인수 → 두 인수는 교환된다.
② 인수 < 0 또는 NaN인 경우 0으로 취급된다.
③ 인수 > 문자열의길이(str.length)인 경우 인수는 문자열의 길이(str.length)로 취급된다.
const str = 'Hello World'; // str.length == 11
// ① 첫 번째 인수 > 두 번째 인수 → 두 인수는 교환된다.
str.substring(4, 1); // ell
// ② 인수 < 0 또는 NaN인 경우 0으로 취급된다.
str.substring(-2); // Hello World
// ③ 인수 > 문자열의길이(str.length)인 경우 인수는 문자열의 길이(str.length)로 취급된다.
str.substinrg(1, 100); // ello World
str.substring(20); // ' '(빈 문자열)
Author And Source
이 문제에 관하여([프로그래머스] Level1. 가운데 글자 가져오기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@hyesom/프로그래머스-Level1.-가운데-글자-가져오기저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)