기다리고 기다리던 카카오브레인 패스파인더 서류결과 합격을 했다. 서류합격 후 다음 관문은 코딩테스트였다. 관련해서 검색을 해보았을때 이전 패스파인더 코딩테스트 자체는 그렇게 어렵지는 않았다고 했고 관련해서 해커랭크라는곳에서 브론즈~실버 정도의 난이도 수준이라고 했다. 안내 메일을 보면 해커랭크로 문제가 전달되어 풀게 된다고 되어 있었고 미리 가입을 해두라는 내용 또한 있었기에 어찌되었든 일단 가입하고 문제를 한번 풀어보자 했다.
해커랭크 홈페이지에 가입을 하고 접속을 하였다. 우선 해외 사이트인거 같은데 전부 영어로 나와있다. 뭐 영어 자체는 나에게 있어서 그렇게 크게 문제가 되지는 않지만 문제가 될것은 잘 사용해보지 않은 단어들의 향연이 있을것임을 알았기에 익숙해지기 위해서 문제부터 풀어보고자 했다.
면접까지 한달 준비과정이란게 있었는데 우선 이거부터 해보기로 했다.
그중 첫 문제는 plus minus 라는 제목의 문제였다. 텍스트가 영어로 되어있어 어떤것을 요구하는것인지 우선 한번 살펴 보았다. 
배열이 주어졌을때 각 정수, 음수, 0 을 차례대로 비율로 소수 6번째 자리까지 "프린트"하라는 문제였다.
잠깐만 "프린트"라고? 이거 파이썬에서만 쓰는거 아니야? JS 로는 어떻게 하는거야? 라는 생각이 들었다. 또한 JS 에서 세줄을 반환이 가능한가? 싶었는데 우선 로직부터 생각해보고 그건 나중에 다시 생각해보자 했다.
역시나 첫문제인만큼 어렵지는 않았다. 나의 로직은 다음과 같았다. 실행은 간단하게 runjs로!
const arr = [-1,-2,-3, 0, 0,0, 1,2,3,4,5]
function plusMinus(arr) {
let positive = 0
let negative = 0
let zeros = 0
for(let i = 0; i < arr.length; i++){
if(arr[i] > 0){
positive++
} else if (arr[i] < 0){
negative++
} else if (arr[i] === 0){
zeros++
}
}
return Number((positive/(positive + negative + zeros)).toFixed(6)),
Number((negative/(positive + negative + zeros)).toFixed(6)),
Number((zeros/(positive + negative + zeros)).toFixed(6))
}
plusMinus(arr);
우선 각각 반환해보았을때는 만족스런 결과가 나왔지만 역시나 3줄 반환은 불가능하자나? 흠... 세줄 반환이라.. 어떻게 하는걸까... 배열로 넣어서 한번에 반환도 해보았으나 역시 세줄로 나오지 않았다...
결국 다른 사람들 푼것을 찾아보았는데... console.log 로 찍으면 되는것이었다!
아니 지금까지 해본 코테 연습문제들은 다 무조건 반환을 하는거였잖아? 왜 콘솔로그를 찍으라고? 상상도 못했다... 반환이 아닌 콘솔을 찍는 코테라니...
아무튼 콘솔로그를 찍으니 잘되었고 그대로 문제 제출 결과는!

예아! 아무튼 당연히 반환을 해야 하는건줄 알았는데 콘솔로 찍는것일수도 있을 수 있다는 깨달음을 얻었다. 그래 좋아 해커랭크 다음 문제로 가보자고!
해커랭크 처음 입문기이다 보니 코드보다는 나의 사용자경험(?) 위주로 작성을 해보았다.
소수 점 자리 구하기:
원래 처음에는 반올림 하는 메서드를 사용할까 했으나 그냥 딱 몇번째 자리까지 구할 수 있다는 메서드를 확인하고 사용하기로 함
역시나 바로 이해가 안된다면 예제를 보자!

위의 예시를 보면 잘 이해가 안갈수도 있으나 밑의 예시를 보면 아주 잘 이해 할 수 있을것이다! 문제는 두 메서드 모두 number를 string으로 변경하는데 예전같으면 크게 신경안쓰고 바로 제출 버튼을 눌렀겠지만 typescript를 통해 타입을 중요성을 알게된 지금은 그렇게는 안되지!
String 을 number로 바꾸기:
역시나 예제를 보자

아무튼 그렇다! 그래 포기하지말고 취뽀 가보자고~!