코드카타 | Day5

정수진·2022년 1월 15일
0

코드카타

목록 보기
2/10

문제를 보고 내가 접근한 방식은
배열안에 모든 단어의 첫번째 글자를 비교하고,
같으면 빈 문자열에 그 글자를 추가하고,
그 다음 글자도 같은 방식으로 비교하고
모두 같지가 않으면 순환이 끝나며 만들어진 문자열을 리턴하는 방식을 생각했다.

우선은 myString이라는 빈문자열에 for반복문을 사용하여 모든 단어들의 같은 인덱스의 글자를 넣어준다.

let myString = "";
for (i=0; i<min; i++) {
  for (j=0; j<len; j++) {
    myString += strs[j][i];
    }
  }

위의 조건문을 돌리려니 min과 len의 변수 지정이 필요해졌다.
여기서 min이란 가장 짧은 단어의 글자수, len은 배열의 길이가 되겠다.

const len = strs.length;

let list = [];
  for (s=0; s<len; s++) {
    list.push(strs[s].length);
    }
  const min = Math.min(...list);

글자들이 모두 같은지 비교하는 방법은 repeat을 사용해준다.

let result = "";
if (myString == strs[0][i].repeat(len)) {
      result += strs[0][i] ;

또한, myString을 빈문자열로 리셋시켜줘야 원하던 방식의 비교가 가능하다.
그리고 빈배열의 경우 또한 고려해줘야 한다.

위의 로직을 필요한 위치에 다시 쓰면 아래와 같다.

0개의 댓글