06 - commonCharacters

코드위의승부사·2019년 12월 3일
0

TIS(Today I Solved)

목록 보기
6/6

문제설명

공통된 문자열을 찾는 문제이다.

입출력 예)

commonCharacters('acexivou', 'aegihobu') // => 'aeiou'

문제접근

두 스트링중에 중복된 문자열 하나씩만 리턴하자
처음 풀었을 때는 객체를 활용해서 모든 문자열을 카운트 하는 방식으로 했는데 이번에는 한번 체크된 문자열을 다시 카운트 하지 않도록 해봐야겠다.

테스트케이스를 보면 string1과 string2의 길이는 같은경우와 다른경우도 있다.
같은경우 for문의 반복의 범위를 두가지 문자열중 어느것의 길이를 사용해도 관계없지만,
길이가 다를 경우 짧은길이만큼만 반복해주면 된다.

여기서 테스트케이스는 string1의 길이가 string2의 길이가 같거나 작은데 만약에 string2의 길이가 작다는 경우의 수도 고려해서 코드를 짜고 싶다.
길이를 비교해주려면 길이를 비교해주는 함수를 만들거나 Math 메소드를 쓰면 될 거 같은데 이번에는 Math메소드를 써볼까..?
배열 요소와 배열요소를 비교할때의 메소드

해결방안

객체를 활용해서 카운트 했던 기존방식

var commonCharacters = function(string1, string2) {
  for(let val of string1){
    checkChar[val] = 1
    if(checkChar[val] < 2){
      checkChar[val] = 1 
    }
  }
  for(let val of string2){
    if(checkChar[val] === 1){
      checkChar[val]++;
    }
  }
  for(let prop in checkChar){
    if(checkChar[prop]>1){
      result += prop
    }
  }
  return result
}

관련내용

회고

profile
함께 성장하는 개발자가 되고 싶습니다.

0개의 댓글