본문 바로가기
자기개발/TIL

js 문자열 바꿔서 찾

by 금화맘 2023. 7. 27.

프로그래머스에서 A,B로 이뤄진 문자열 myString과 pat을 주고 myString의 A=>B,B=>A로 문자열을 바꿔서 그 바꾼 문자열에서 pat이 있어면 1 없으면 0을 반환하는 문제였다.

전에 비슷한 문제를 풀어본 것 같아

그때와 비슷하게 코드를 작성했다.

문자열을 바꿔주기 위해 매치를 하는 객체를 선언하고

문자열을 바꿔준 값ㅇ르 저장하기위한 객체도 만들어서 거기에 문자열을 바꾸는 작업을 했다.

그릭고 answer에서 바꾼 문자열이 pat 문자열을 포함하는지 안하는지 혹인후 1과 0을 반환하는 코드를 만들었다.

 

여기서 또 저번처럼 match[a]부분이 잘 안됐다. map((a)=>a===match(a))를 해서 match가 함수가 아니라는 에러메시지를 받았고 match[a]로 바꿔도 0으로만 반환하길래 chageAB를 확인하니 false로만 떳다. 이게 뭘까 하다가 a==이란 수식을 잘못 써서 그런거였다.

그래서 a==을 삭제하고 예전에 작성했던 비슷한 문제를 혹인하니 match[a]로만 작성했던걸 확인했고 코드실행과 제출을 통해 이게 맞다는 것을 확인할 수 있었다.

 

function solution(myString, pat) {
    var answer = 0;
    let match = {
        'A' :"B",
        'B' : "A"
    }
    let changeAB =[...myString].map((a)=>match[a]).join('')
    // console.log(changeAB)
    answer = changeAB.includes(pat) ? 1:0
    return answer;
}

나처럼 이렇게 선언해서 하나하나 해도 문제는 없지만

다른 사람은 어떻게 했는직 궁금했는데 역시나 한줄로 처리한 사람들이 있었다.

const solution = (myString, pat) => [...myString].map(v => v === 'A' ? 'B' : 'A').join('').includes(pat) ? 1 : 0

역시나 똑똑한 사람은 많다는 생각을 했다.

나는 하나하나 선언해서 했는데 이렇게 한번에 처리한 사람은 한방에 팡팡 머리가 돌아가기 때문에 이런 코드를 짤 수 있는거 아닐까?

'자기개발 > TIL' 카테고리의 다른 글

js 5명씩  (0) 2023.07.31
홀짝에 따라 다른 값 반환하기 js  (0) 2023.07.28
o떼기 js  (1) 2023.07.27
홀수 vs 짝수 js  (0) 2023.07.25
l로만들기 js  (0) 2023.07.24