글자 수가 홀수면 가운데 글자 하나만 출력하고
짝수일 경우엔 가운데 글자 두개 출력하는 문제
글자수를 2로 나눈 후 round함수를 이용해서 반올림하기!
그러면 글자 수 5면 3, 글자수 4면 2가 나옴!
if 문으로 입력문자가 홀수인지 짝수인지 판별한 후
round함수를 이용해 만들어논 숫자로 인덱싱하면 된다고 생각!
function solution(s) {
let num = Math.round(s.length/2);
console.log(num);
let answer = "";
if (num % 2 === 0) {
answer = s.substr(num-1,num);
} else {
answer = s[num-1];
}
return answer
}
성공~
인줄 알았는데~
테스트 실패는 뭔데? 진짜??
프로그래머스 싹퉁바가지인게 지네들 맘대로 테스트함
적어도 뭘 테스트했는지 나중에라도 알려줬음 좋겠는데, 안알려줌
ㅡㅡ
암만 생각해봐도 내가 구조를 잘못 생각한게 아닌데, 뭐지? 싶었음
일단 Math.round()함수가 잘못 적용되는게 아닐까 생각이 듦
생각해보니깐 파이썬에는 '// ' 연산자 처럼 아예 몫만 구해주는게 있는데
잡스는 따로 배운적이 있던가? 하고 검색해봤둠.
parseInt(number);
이걸 사용하면 파이썬의 '// '처럼 몫을 구할 수 있다!
그냥 파이썬 처럼 '// ' 연산자 하나 추가해주지 ㅡㅡ
암튼 Math.round() 대신 parseInt()로 바꿔봤는데 그래도 테스트 몇 개 통과 못함
그래도 다행인건 정확성이 70퍼인가로 올라갔다는 점..?
그래서 잡스 문자열 자르는 함수들도 다시 알아봄.
split, substr, substring, slice 다 알아봤는데,
내가 쓴 substr은 특정 Index에서 원하는 길이만큼 잘라서 문자열로 리턴
substring이랑 slice는 Index start를 포함하고 Index end를 포함하지 않는 문자열을 잘라서 리턴한다고 함..
...
function solution(s) {
let num = parseInt(s.length/2);
console.log(num);
let answer = "";
if (s.length % 2 === 0) {
answer = s.slice(num-1,num+1);
} else {
answer = s[num];
}
return answer
}
그래서 substr 대신 slice를 사용했는데 성공함.. 뜨든..
기억하자! substr(인덱싱 시작, 자를 길이)
참나.. 그렇게 테스트 많이 했으면서 1 점 뭔데 ㅡㅡ
오늘의 코테도 성공~ ㅡㅡ
[참고 링크]https://codechacha.com/ko/javascript-how-to-substring/