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이 포함되어있는지 확인하게 했습니다.
단계별로 나타내면 다음과 같습니다.
- 스프레드 연산자 사용으로 배열로 변환
- 예: "ABC" -> ['A', 'B', 'C']
- map 함수 사용 (A→B, B→A)
- ['A', 'B', 'C'] -> ['B', 'A', 'C']
- join 함수 사용
- ['B', 'A', 'C'] -> "BAC”
- includes 함수 사용으로 pat 포함 확인
- "BAC".includes(pat)
배운점
스프레드 연산자를 사용해서 문자열을 배열로 쉽게 변환해서 각 문자에 접근할 수 있음을 떠올렸습니다.
728x90
'코테 > 프로그래머스' 카테고리의 다른 글
[코딩 기초 트레이닝] rny_string (0) | 2024.07.18 |
---|---|
[코딩 기초 트레이닝] 배열의 원소만큼 추가하기 (0) | 2024.07.18 |
[코딩 기초 트레이닝] 공배수 (0) | 2024.07.09 |
[코딩 기초 트레이닝] n의 배수 (0) | 2024.07.09 |
[코딩 기초 트레이닝] 배열 비교하기 (0) | 2024.07.09 |