-
[프로그래머스] 점의 위치 구하기, 크기가 작은 부분문자열프로그래밍 언어 😵💫/JavaScript 2023. 3. 29. 14:42
점의 위치 구하기
function solution(dot) { var answer = 0; var x =dot[0]; var y =dot[1]; //x와 y가 차례로 주어지니까 변수에 값을 저장하고 비교 if(x > 0 && y > 0) return 1; else if(x< 0 && y >0) return 2; else if(x<0 && y<0) return 3; else return 4; }
다른 사람 풀이
function solution(dot) { const [num,num2] = dot; // 배열 값에 이름 지정해주고 const check = num * num2 > 0; // 둘이 곱했을 때 0보다 큰지로 체크 !! return num > 0 ? (check ? 1 : 4) : (check ? 3 : 2); } //만약 x가 0보다 크면 check값이 참이면(0보다 큼) return 1(둘다 양수), 거짓이면 return 4(y가 음수) ...
이런걸 구조 분해라 하는가보다....
크기가 작은 부분문자열
function solution(t, p) { var cnt = 0; var len = p.length; //부분 문자열 구하기 splice 메소드 for(var i=0; i<t.length; i++){ var answer = " "; answer = t.splice(i,len); if(answer <= p){ cnt ++; } } return cnt; }
분명히.. 문자열에서도 splice 쓸 수 있다는 글을 어제 !! 봤는데
.. 감쪽같이 사라졌다 (배열에서만 사용하는 걸로...)
그래서
substr 메소드를 사용해서 풀었다
문자열.substr(시작위치, 길이);
function solution(t, p) { var cnt = 0; for(var i=0; i<t.length- (p.length-1); i++){ answer = " "; answer = t.substr(i,p.length); //반복문을 이용하여 문자열 하나하나 시작점으로 p의 길이만큼 잘라준다 if(answer <= p){ cnt ++; // 자른 문자열의 값이 p보다 작거나 같을 때 카운트 } } return cnt; }
처음에 반복문의 범위를 t.length 로 해주었는데 , 테스트케이스 3개중 2개만 성공했다
그래서 if문 전에 console.log로 answer을 확인해보았는데
p길이가 아니더라도 t의 마지막 문자열까지 잘라줘서 그런거였다..
2023.03.27 - [공부/javascript] - 프로그래머스 삼총사 자바스크립트
프로그래머스 삼총사 자바스크립트
배열의 원소 3개를 더했을 때 0이 되는 경우를 count하기 어떻게 할까 했는데 반복문을 3번 돌릴 수가 있나 ? 싶어서.. 근데 그게 됐다 그래서 3번 돌렸다. function solution(number) { var answer = 0; for(var i=0;
cherrycode.tistory.com
이 문제를 풀 때 왜 범위를 잘라도 되고 안잘라도 되지 했었는데 !! 바로 이런 이유였다...
삼총사 문제는 합을 구하는 것이라서 답에 영향이 없었지만..
이 경우에는 자르지 않으면 이상한 값이 카운트 되어버린다.
범위를 지정해주기 위해서 테스트케이스를 일일히 자르면서 세본 결과....
t.length에서 p의 길이-1 만큼 전에서 끝내면 되었다.
'프로그래밍 언어 😵💫 > JavaScript' 카테고리의 다른 글
[프로그래머스] 삼총사 자바스크립트 (0) 2023.03.27 자바스크립트 값 입력 받기 (1) 2023.03.14 javascript 2 (1) 2023.03.06 javascript 1 (2) 2023.03.05