(찾아야 할 것)
1. 가운데 글자를 반환하는 법
2. 단어의 길이 아는 법
3. 두 글자를 반환하는 법
일단 가운데 글자를 반환하는 것부터 헷갈렸는데, 조건에 단어의 길이가 짝수라면~ 이 있어서, 짝수부터 알아봐야겠다 싶었다.
(생각한 모양)
if 단어의 길이 % 2 == 0 { 반환해 = 가운데 두 글자를 } else { 반환해 = 가운데 글자를 -> 홀수} return answer; |
단어의 길이 = length를 사용하면 되는데, 문제를 보면 s의 길이라고 했으니까
s.length라고 하면 되고
👌 s.length %2 ==0 // s의 길이를 2로 나누고 0이니까 짝수다
나누었을 때 글자를 반환하려면 []를 사용하면 되는데
예를 들어, abcd의 s.length 이면 4가 되고 bc를 반환해야 하니까
s.length/2 를 하면 숫자 2가 되고 b는 컴퓨터 숫자로 1이니까
👌 s.length / 2 - 1 // b의 숫자인 1이 산출된다.
👌 s[s.length / 2 - 1] // s의 1번 글자인 b 산출
👌 s[s.length / 2] // s의 2번 글자인 c 산출
✅ answer = s[s.length / 2 - 1] + s[s.length / 2] // bc 반환 끝!
홀수는 좀 어렵다. 왜냐하면 5를 2로 나누면 2.xx가 되기 때문에 xx를 날려줘야 한다.
반내림 하는 방법은
👌 Math.floor // M을 m으로 쓰면 코드 실행이 되지 않으므로 대문자 주의!
👌 Math.floor(s.length / 2) // 2.xx의 반내림인 2 산출
👌 s[Math.floor(s.length / 2)] // s의 2번 글자인 c 산출
✅ answer = s[Math.floor(s.length/2)]
function solution(s) { var 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; } |
최종 코드는 위와 같다!
✅ 팀원의 다른 코드
function solution(s) {
var answer = '';
if(s.length%2==0){
answer=s.substr(s.length/2-1,s.length%2+2)
}else{
answer=s[Math.floor(s.length/2)]
}
return answer;
}
substr('시작위치', '길이') 또는 substr('시작위치')
'/'는 몫이고 '%'는 나머지
몫과 나머지를 구분해서 코드 작성한 이유는 글자 수에 따라 몫이 달라질 수 있기 때문에 나눠서 구분한 것
'알고리즘 스터디 > [프로그래머스] 연습문제' 카테고리의 다른 글
[알고리즘] 없는 숫자 더하기 문제풀이(자바스크립트 javascript) (0) | 2022.07.15 |
---|---|
[알고리즘] 문자열을 정수로 바꾸기 문제 풀이(자바스크립트 javascript) (0) | 2022.07.15 |
[알고리즘] 두 정수 사이의 합 문제 풀이(자바스크립트 javascript) (0) | 2022.07.15 |
[알고리즘] 짝수와 홀수 문제 풀이(자바스크립트 javascript) (0) | 2022.07.15 |
[알고리즘] 직사각형 별찍기 문제 풀이(자바스크립트 javascript) (0) | 2022.07.15 |