🗃️javascript/코테 프레임 문제
1-10 문자 찾기(24년)[수정된 기존 배열 리턴: map, 기존 배열x : forEach]
하얀성
2023. 9. 19. 07:30
<제출 답>
function solution(s, t){
let count = 0;
for(let x of s){
if(x === t){
count++;
}
}
return count;
}
let str="COMPUTERPROGRAMMING";
console.log(solution(str, 'R'));
아래처럼 R을 기준으로 분리해서 그 구분된 배열 길이 -1 을 통해 값을 구해도 된다.
function solution(s, t){
let answer=s.split(t).length;
return answer-1;
}
let str="COMPUTERPROGRAMMING";
console.log(solution(str, 'R'));
특이한 사실!!
split('구분자') 구분자를 마지막에 놓고해도 뒤에 빈 배열 추가로 생성
-> 뒤에 R을 추가로 넣고 배열을 출력시켜봄
갯수도 4개가 맞다. 배열 갯수도 5개니까 5 - 1해야 갈라놓은 곳을 기준으로 R의 갯수를 정확히 출력하니 맞는 내용.
function solution(s, t){
let answer=s.split(t);
return answer;
}
let str="COMPUTERPROGRAMMINGR";
console.log(solution(str, 'R'));
출력결과
24.4.10 업데이트.
코드가 s로 매개변수로 받았는데 str로 사용해버려서 수정필요.
function solution(s, t) {
let answer = 0;
[...str].map((x) => (x === t ? answer++ : undefined));
return answer;
}
let str = "COMPUTERPROGRAMMING";
console.log(solution(str, "R"));
<수정 코드>
1, 반복문은 if조건은 {}로 감싸면 충분히 조건문을 잘 사용할 수 있다.(여태껏 이게 잘 안되서 삼항연산자 사용해옴)
2. 반복문 사용 후, 수정된 기본 배열 리턴은 map, 기존 배열이 아닌 전혀 다른 것 리턴시에는 forEach 사용
function solution(s, t) {
let answer = 0;
[...s].forEach((x) => {
if (x === t) answer++;
});
return answer;
}
let str = "COMPUTERPROGRAMMING";
console.log(solution(str, "R"));