개인공부를 해야하는데 외부에 나와있어서 코딩테스트를 하면서 머리를 돌려보도록 한다.
굉장히 유명한 사이트 프로그래머스 스쿨! 간단하게 구글 가입 후 코테연습
일단 lv.0 으로 되어있는 문제를 쭉 풀면서 신선했던 답안을 많이 발견했다.
역시 세상에 천재는 많구나-!
이정도야 하면서 풀어낸 나의 답안
function solution(n){
return String(n);
}
신선했던 다른 이의 답안
const solution = String;
와 이런게 되나?
평범하게 풀어낸 나의 답안
function solution(n){
return Math.floor(n);
}
충격적이였던 다른 답안
const solution = flo => ~~flo;
해설 :
NOT연산자로 실수를 32비트 정수로 변환하고 반전시킴
이걸 다시 32비트 정수로 변환하고 반전시켜서 출력
Math.floor(num)은 주어진 수보다 작거나 같은 가장 큰 정수반환
Math.trunc(num)은 소수부를 버림
운이 좋았다. 개념적으로 명확하게 알자. 버림은 Math.trunc(num)!!
그런데 조건문에 num이 0보다 크네.. 운도 좋았고 틀린코드는 아니였다~
String number 형태의 값이 주어졌을때 String을 number수만큼 반복해서 출력하기!
나의 답안 : 무지해서 반복문을 사용
input = input.split(' ');
n = Number(input[1]);
for(let i=0;i<n-1;i++){
str += input[0];
}
console.log(str);
좋았던 답안
input = input.split(' ');
n = Number(input[1]);
console.log(input[0].repeat(n));
repeat(number) 이런 메서드도 있었구나! 알아둬
문자열 my_string, overwrite_string과 정수 s가 주어집니다. 문자열 my_string의 인덱스 s부터 overwrite_string의 길이만큼을 문자열 overwrite_string으로 바꾼 문자열을 return 하는 solution 함수를 작성해 주세요.
내가 처음에 작성한 답안
function solution(my_string, overwrite_string, s) {
let chgText = my_string.substr(s,overwrite_string.length);
return my_string.replace(chgText,overwrite_string)
}
오류가 있다! 왜지? : replace가 처음 발견한 문자만 바꾸기 때문이다!
다시 수정한 답안
function solution(my_string, overwrite_string, s) {
return my_string.slice(0, s) + overwrite_string + my_string.slice(s + overwrite_string.length);
}
아 어렵다 !! slice, replace, substr 나눠서 다시 명확하게 공부하자!!