[javascript] wecode 알고리즘 문제

김동하·2020년 10월 31일
0

get_prefix

문자열에서 특정 문자를 기준으로 자르고 반환할 때 split을 사용한다.

split("-")을 하면 "-"을 제외하고 각 문자을 배열로 만들어서 반환하는데 문제에서 앞에 문자열이니까 [0]을 해주면 된다. 코딩 테스트 같은 문제에서 상수로 index를 지정해서 return하면 뭔가 찝찝한데 forEach나 for문으로 배열을 돌려서 return하면 될 듯!

get_find

타겟 문자를 타켓 문자열에서 찾는 것인데 indexOf를 안 쓰고 찾아야 한다. 일단 문자열을 배열화하고 forEach로 각 요소와 타겟 문자가 맞는지 찾는다. 만약 맞다면 idx를 answer 배열에 저장하고 return으로 answer[0]을 하면 된다! return으로 삼항연산자 쓴 건 너무 좋아 좋아.

find_longestword

조건은 간단하다. 배열에 문자열이 있고 문자열 중 가장 길이가 긴 것을 찾아서 반환하면 된다. 문제는 배열에 있는 문자열의 길이를 찾아서 그것을 기준으로 가장 긴것을 찾는데 idx를 계속 저장해야 한다는 것이었다! max부터 별별 삽질을 다 하다가 아주 원초적 그리고 직관적으로 문제를 풀었다.

일단 longestNum과 그 문자열의 idx를 담을 변수를 준비. map으로 각 요소의 길이만 저장. 그리고 for문으로 가장 긴 문자열을 찾는데 만약 logestNum이 존재하지 않으면(첫 for문) 첫 번째 요소가 longestNum이 되고 다음 i와 비교해서 계속 값이 바뀐다. 그리고 저장한 index를 이용해 return하면 된다. 너무 뿌듯해!!!!!

profile
프론트엔드 개발

0개의 댓글