알고리즘 문제 풀기 (JS입문) - 가운데 글자 가져오기
2023. 1. 1. 21:14ㆍ알고리즘 공부
728x90
SMALL
문제
단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다.
재한사항
- s는 길이가 1 이상, 100이하인 스트링입니다.
예시
s | return |
'abcde' | 'c' |
'qwer' | 'we' |
function solution(s) {
var answer = '';
return answer;
}
내가 푼 답
function solution(s) {
var answer = '';
if (s.length % 2 === 0) {
answer = s[s.length / 2 - 1] + s[s.length / 2];
} else {
answer = s[(s.length - 1) / 2];
}
return answer;
}
s의 길이를 2로 나눴을 때 0이면 짝수이다. 짝수길이라면 가운데 글자 두자리를 데려와야하기때문에
그럼 answer은 s의 배열을 s의 길이 나누기 2를 해서 나온 값, 즉 요소의 자리와 그 앞자리를 호출하라고 했다.
그리고 2로 나눴을때 나머지가 0이 아니라면 홀수라는 뜻인데,
홀수라면 answer을 s의 길이를 2로 나누기전에 -1을 해주고 나누어서 그 값의 자리수를 호출하라고 했다.
다른 사람이 푼 답
function solution(s) {
return s.substr(Math.ceil(s.length / 2) - 1, s.length % 2 === 0 ? 2 : 1);
}
위 코드에서는 .substr/ math.ceil를 사용하였다.
substr() | 문자단위로 시작위치와 자를 길이를 지정하여 문자열을 자른다. - 함수 : SUBSTR("문자열", "시작위치", "길이") |
Math.ceil(x) | 인수와 같거나 큰 수 중에서 가장 작은 정수 반환 |
Math 메소드 중
자주 사용하는 함수 정리
Math.min(x,y,z....) | 가장 작은 값 반환 |
Math.max(x,y,z....) | 가장 큰 값 반환 |
Math.random() | 0보다 크거나 같고 1보다 작은 무작위 숫자 반환 |
Math.round(x) | 소수점 첫 번째 자리에서 반올림 후 반환 |
Math.floor(x) | 인수와 같거나 작은 수 중에서 가장 큰 정수 반환 (내림) |
Math.ceil(x) | 인수와 같거나 큰 수 중에서 가장 작은 정수 반환 (올림) |
Math.abs(x) | x의 절댓값 반환 |
Math.sqrt(x) | x의 제곱근 반환 |
Math.cbrt(x) | x의 세제곱근 반환 |
Math.exp(x) | e의 x제곱근 값을 반환 |
Math.log(x) | x의 자연로그 값을 반환.(ln x) |
Math.log2(x) | x의 2를 밑으로 가지는 로그 값을 반환 |
Math.pow(x,y) | x의 y제곱을 반환 |
Math.sign(x) | x의 부호 값을 반환 |
728x90
LIST
'알고리즘 공부' 카테고리의 다른 글
알고리즘 문제 풀기 (JS입문) - 없는 숫자 더하기 (0) | 2023.01.06 |
---|---|
알고리즘 문제풀기 (JS입문) - 나누어 떨어지는 숫자배열 (1) | 2022.12.31 |
알고리즘 문제풀기 (JS입문) - x만큼 가격이 있는 (0) | 2022.12.29 |
알고리즘 문제 풀기 (JS입문) - 직사각형 별 찍기 (0) | 2022.12.26 |
알고리즘 문제풀기 (JS입문) - 양수 음수 더하기 (0) | 2022.12.24 |