1. 문제 설명
단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다.
2. 제한 조건
s는 길이가 1 이상, 100이하인 스트링입니다.
3. 예시
- 입력/출력
S | return |
"abcde | "c" |
"qwer" | "We" |
4. 풀이
- if / else 활용
- 글자의 숫자가 짝수라면 2개의 중간 글자가 나오게 됨으로 num1 / num2 값을 줘서 진행했다.
- parseInt는 else에서 나눈 값이 2.5로 나오면 2인 정수로 바꿔준다.
function solution(s) {
var answer = '';
let num1 = 0;
let num2 = 0;
if (s.length % 2 == 0) {
num1 = s.length / 2 - 1
num2 = s.length / 2
return answer = s[num1] + s[num2]
} else {
num1 = parseInt(s.length / 2)
return answer = s[num1]
}
}
- else의 홀수라면 홀수의 길이를 짝수로 만들어주는 방안
function solution(s) {
var answer = '';
let num1 = 0;
let num2 = 0;
if (s.length % 2 == 0) {
num1 = s.length / 2 - 1
num2 = s.length / 2
return answer = s[num1] + s[num2]
} else {
num1 = (s.length - 1) / 2
return answer = s[num1]
}
}
- 변수 없이 바로 출력
function solution(s) {
var answer = '';
if (s.length % 2 == 1) {
answer = s[(s.length - 1) / 2];
} else {
answer = s[s.length / 2 - 1] + s[s.length / 2]
}
return answer;
}
- 다른 사람의 갓풀이!
function solution(s) {
return s.substr(Math.ceil(s.length / 2) - 1, s.length % 2 === 0 ? 2 : 1);
}
Math.ceil
전달받은 값과 같거나 큰수 중 가장 작은 정수를 리턴
즉, 입력받은 숫자를 올림한 정수를 리턴하는 함수.
/ 1.올림
const ceil_1 = Math.ceil(1); // 1
const ceil_2 = Math.ceil(1.222); // 2
const ceil_3 = Math.ceil(1.5); // 2
const ceil_4 = Math.ceil(1.777); // 2
// 2. null 또는 0인 경우
const ceil_5 = Math.ceil(null); // 0
const ceil_6 = Math.ceil(0); // 0
// 3. 음수인 경우
const ceil_7 = Math.ceil(-1); // -1
const ceil_8 = Math.ceil(-1.111); // -1
const ceil_9 = Math.ceil(-1.5); // -1
const ceil_10 = Math.ceil(-1.777); // -1
*내림(Math.floor())
*반올림(Math.round())
*소수점 반올림 (toFixed(), toPrecision())
'개발 공부 > 알고리즘' 카테고리의 다른 글
[프로그래머스 알고리즘] 없는 숫자 더하기 JavaScript (0) | 2022.03.13 |
---|---|
[프로그래머스 알고리즘] 문자열을 정수로 바꾸기 JavaScript (0) | 2022.03.13 |
[프로그래머스 알고리즘] 두 정수 사이의 합 JavaScript (0) | 2022.03.13 |
[프로그래머스 알고리즘] 짝수와 홀수 JavaScript / 삼항연산자 (0) | 2022.03.13 |
[프로그래머스 알고리즘] 직사각형 별찍기 JavaScript (0) | 2022.03.13 |