VowelIndex
이번 주는 내내 코딩 한자 제대로 하지 못한 주나 다름 없었다. 블로그 정리도 못하고, 나름 목표를 정하고 하려고 했던 오픈소스 공식 문서 번역도 아직 들어가지도 못했다….ㅠㅠ 대체 언제나 목표한 바를 정확히 이루려나..
암튼 이번 주 문제는 코드워 사이트에서 풀었고… 그렇게 오래 걸리지 않았다. 별7개 등급의 문제 였는데 내가 자주 푸는 등급들은 이제 원리와 생각 자체만 정리되면 그렇게 오래 걸리지는 않는 듯하다. 물론 다른 능력자들의 풀이를 보면 언제나 좌절을 하게 된다.
문제 설명
일단 string 타입 매개변수가 주어지고 그 매개변수 문자열에서 알파벳 모음의 문자열 위치를 배열 형태로 반환하는 문제다. 즉 쉽게 표로 설명하면 이렇다.
input | output |
---|---|
‘input’ | [1, 4] |
‘asas’ | [1, 3] |
‘qwqw’ | [] |
첫 배열의 시작은 0이 아니라 1로 시작한다. 그리고 모음이 없으면 빈 배열을 리턴한다.
내 풀이
1 | function vowelIndices(word){ |
우선, 리턴할 빈 어레이를 만들고, 알파벳 모음으로 이루어진 배열을 하나 생성한다. 그리고 주어진 매개변수를 각 letter 하나 씩 소문자 화 시킨 다음 배열 형식으로 나눈 다음 그 어레이와 모음으로 이루어진 배열을 비교하여 매칭되면 그 단어의 인덱스에 1씩 더해서 빈 어레이에 push한 다음 리턴한다.
샘플 테스트에서 가볍게 통과 되서 랜덤테스트도 가볍게 통과 될 줄 알았는데 이게 왠일인가… 계속 fail이 난다.
한 10분을 코드 잡고 생각 했는데 테스트 결과를 보니 모음에 y도 들어간다…헐… 내가 알기로는 분명히 y는 자음인데… 그래도 모음 배열에 위와 같이 y를 추가해서 테스트를 돌려보니 모두 통과 되었다.
다른 분들의 풀이
1 | function vowelIndices(word) { |
가장 이해하기 쉽고 깔끔하다고 생각되는 코드 중 하나다…. 그리고 나도 정규표현식 공부해야 한다라는 의지를 다시금 불어 넣어 주는 답안이다.
1 | function vowelIndices(word){ |
indexOf
method를 사용한 풀이법이다. 사실 이것도 생각해 봤는데 응용해 보려다가 그냥 내 방식대로 풀어 보는게 더 좋을 듯 해서 그냥 중간에 다 지워버리고 맨 위의 코드로 작성해서 풀어 버렸다.
정리
이 문제는 대부분의 답들을 보면 거의 정규표현식이 주를 이루고 있었다. 사실 아직도 정규표현식에 대한 필요성이 그렇게 느껴지는 단계가 아니기 때문일까? 공부를 한다 해도 겨우 책만 살짝 보고 코드 작성이나 응용을 해 보지를 않으니 내가 작성하는 코드 자체에서 응용이 되지를 않는 것 같다.
8월 목표는 정규표현식을 어느 정도 이해하자로 정하고 블로그에 글을 정리해 봐야 겠다.