* Programmers 코딩테스트 연습 : 완주하지 못한 선수
문제
단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요.
단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다.
문제풀이
* JavaScript 언어로 구현했습니다.
이 문제는 level 1에 속하는 가장 기본적인 문제다.
JavaScript로 알고리즘을 해결하면서 문제해결하는 능력을 연습하지만, javaScript의 다양한 함수를 잘 활용하려고 진행하는 이유도 있다.
사실 이번문제도 간단하게 풀었는데, 다른분들의 풀이에서 더 좋은 코드를 발견했다.
1 2 3 4 5 6 7 8 9 10 11 12 | function solution(s) { let result = ''; if (s.length%2 === 0) { result += s[s.length / 2 - 1]; result += s[s.length / 2]; } else { result += s[parseInt(s.length / 2)]; } return result; } | cs |
내가 작성한 코드는 이건데 뭔가 마음에 안들었다.
1 2 3 | function solution(s) { return s.substr(Math.ceil(s.length / 2) - 1, s.length % 2 === 0 ? 2 : 1); } | cs |
이 코드는 다른 분들이 작성한 코드 중에서 가장 좋아요를 많이 받은 코드다. 한번봐도 간단하다.
사실 substr이라는 함수는 처음보는 함수다.
MDN에 검색해보니 substr()에 대한 이슈가 있는 것 같다.
경고문에 "not strictly deprecated as in removed from the Web standars" 즉, 엄밀히 웹 표준에서 사라지지는 않지만
그리고 밑 글에 "Programmers should not use or assume the existence of these features and behaviours when writing new ECMAScript code."라고 한다. 프로그래머는 새로운 ECMA 스크립트 코드를 쓸때 이 기능과 동작을 쓰지 않는 것이 좋다고 한다.
'Algorithm > JavaScript' 카테고리의 다른 글
[JavaScript]백준 10799번 쇠막대기 (0) | 2018.10.13 |
---|---|
[JavaScript]완주하지 못한 선수 (0) | 2018.10.12 |
[JavaScript]서울에서 김서방 찾기 (0) | 2018.10.12 |
댓글