본문 바로가기

코테/프로그래머스

[코딩 기초 트레이닝] 문자열 바꿔서 찾기

728x90

[코딩 기초 트레이닝] 문자열 바꿔서 찾기

문제 링크

구분

코딩테스트 연습 > 코딩 기초 트레이닝

풀이 요약

주어진 문자열을 뒤집고 연속하는 문자열이 존재하면 1을 , 그렇지않으면 0을 출력하는 문제

나의 풀이

//첫번째 풀이
function solution(myString, pat) {
    let replaceMyString=[];
    for (let i=0; i<myString.length; i++){
        replaceMyString+=myString[i]=="A"? "B":"A"
    }
    return replaceMyString.includes(pat)?1:0
}

//두번째 풀이
function solution(myString, pat) {
     return [...myString].map((s)=>s==="A"?"B":"A").join("").includes(pat)?1:0
}
   

첫번째 풀이에서는 for문을 사용했지만 문자열의 모든 요소를 for문을 통해 순회했지만

두번째 풀이에서는 스프레드 연산자와 map 함수를 사용해서 개별문자로 분해 후 “A”를 “B”로 고치고 “B”를 “A”로 고치게 했습니다.

또한 join 연산자를 통해 모든 배열요소를 문자열로 합치고 변환된 문자열에 pat이 포함되어있는지 확인하게 했습니다.

단계별로 나타내면 다음과 같습니다.

  1. 스프레드 연산자 사용으로 배열로 변환
    • 예: "ABC" -> ['A', 'B', 'C']
  2. map 함수 사용 (A→B, B→A)
    • ['A', 'B', 'C'] -> ['B', 'A', 'C']
  3. join 함수 사용
    • ['B', 'A', 'C'] -> "BAC”
  4. includes 함수 사용으로 pat 포함 확인
    • "BAC".includes(pat)

배운점

스프레드 연산자를 사용해서 문자열을 배열로 쉽게 변환해서 각 문자에 접근할 수 있음을 떠올렸습니다.

728x90