요새 자바스크립트를 유뷰브랑 UDEMY 사이트를 통해 차근차근 배우고있다.
근데 역시 주입식으로 차근차근 배우는것은 효율이 많이 떨어진다는 생각이 들었다.
그래서 전반적으로 어떤개념들이 있는지 큰틀에서 대애충 배운다음에
문제풀이를 주먹구구로 해보는것이 문제해결능력을 높이는데 도움이 되지 않을까 싶어서
이렇게 코딩테스트 문제를 풀어보는과정을 남기기로 하였다.
문제는 프로그래머스 라는 사이트에서 찾아서 풀어볼 수 있다. 굉장히 잘만든 사이트이니 해보면 좋을듯..
처음에 생각해본 식. 단어의 길이가 짝수인거를 표현을 어떻게 해야되나 고민하다가, 파라미터 s의 길이값을 구한뒤에 그걸 2로나눴을때 1이남으면 홀수, 그렇지않으면 짝수라고 생각하였다. 그리고 가운데있는 문자를 꺼내는건 [], 배열의 순서를 이용해 보았다. 예를들면 s[0]는 s단어의 첫번째글자, s[s.length-1]는 s의 마지막 글자를 의미한다.
function solution(s) {
var answer = '';
if (s.length % 2 == 1) {
answer= s[s.length/2-0.5]
}
else {
answer= s[s.length/2-1]+s[s.length/2]
}
return answer;
}
근데 이렇게 하면 될거같았는데 어째서인지 오류가 반환되었다.
vm.js:6
if (s.length % 2 = 1) {
^^^^^^^^^^^^
SyntaxError: Invalid left-hand side in assignment
at new Script (vm.js:88:7)
at NodeVM.run (/usr/local/node-v12.18.3-linux-x64/lib/node_modules/vm2/lib/main.js:1108:13)
at Object.<anonymous> (/solution.js:12:23)
at Module._compile (internal/modules/cjs/loader.js:1137:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1157:10)
at Module.load (internal/modules/cjs/loader.js:985:32)
at Function.Module._load (internal/modules/cjs/loader.js:878:14)
at Module.require (internal/modules/cjs/loader.js:1025:19)
at require (internal/modules/cjs/helpers.js:72:18)
at Object.<anonymous> (/solution_test.js:5:13)
에러코드는 다음과같았는데 s.length % 2 이부분에서 뭔가 문제가 있었던것 같았다.
그래서 s.length를 number로도 씌워보고 했는데 똑같은 오류를 보였다.
그러다가 생각을해보니 =을 쓰는게 아니라 ==을 써야됬었다!
마지막에 정리해서 좀더 깔끔하게 만든건 s.length를 따로 변수로 저장해서 if문을 좀더 깔끔해보이게 만들었다.
function solution(s) {
var answer = '';
var hey = s.length
if ((hey% 2) == 1) {
answer= s[hey/2-0.5]
}
else {
answer= s[hey/2-1]+s[hey/2]
}
return answer;
}
옛날부터 수학개념 공부를 하는거보다 문제먼저 풀어보는걸 굉장히 좋아했었는데 옛날 생각도 나고 머리도 쌩쌩 돌아가는것 같아서 코딩공부가 점점 좋아질 것 같다. ㅎㅎ
앞으로도 답안보고 문제를 풀어보는걸 하나씩 해보아야겠다.
'실전, 제태크! > 웹개발, 어플개발로 돈벌기' 카테고리의 다른 글
[챌린지세번째] 자바스크립트 코딩테스트 뿌시기 (문자열 내 p와 y의 개수) (0) | 2021.03.24 |
---|---|
[챌린지두번째] 자바스크립트 코딩테스트 뿌시기 (두개 뽑아서 더하기) (0) | 2021.03.24 |
자바스크립트 undefined vs null 관련자료 스크래핑 (0) | 2020.10.16 |
웹개발의 시작! (0) | 2020.09.02 |