🗃️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"));