728x90
▶전개 연산자(...) , ▶ map() , ▶ join() , ▶ includes() 함수를 사용한 간단한 기초문제가 있어서 정리해보고자 합니다.
문제설명
문자 "A"와 "B"로 이루어진 문자열 myString과 pat가 주어집니다. myString의 "A"를 "B"로, "B"를 "A"로 바꾼 문자열의 연속하는 부분 문자열 중 pat이 있으면 1을 아니면 0을 return 하는 solution 함수를 완성하세요.
제한사항
- 1 ≤ myString의 길이 ≤ 100
- 1 ≤ pat의 길이 ≤ 10
- myString과 pat는 문자 "A"와 "B"로만 이루어진 문자열입니다.
입출력 예 & 설명
- 입출력 예 #1
- "ABBAA"에서 "A"와 "B"를 서로 바꾸면 "BAABB"입니다. 여기에는 부분문자열 "AABB"가 있기 때문에 1을 return 합니다.
- 입출력 예 #2
- "ABAB"에서 "A"와 "B"를 서로 바꾸면 "BABA"입니다. 여기에는 부분문자열 "BABA"가 없기 때문에 0을 return 합니다.
나의 풀이
먼저 'A'와 'B'를 서로 바꿔줘야 하기 때문에 for of문을 사용하여 문자열의 각 요소를 A면 B로 B면 A로 바꿔주었습니다.
그 후 includes() 함수를 사용하여 pat의 문자열이 문자열 str에 속하는지 판단을 하여 삼항연산자로 마무리했습니다.
다른 풀이
전개 연산자(...)를 사용하여 배열에 문자열 str을 전개해 줍니다.
const solution = (str,pat) => [...str];
→ 입출력 예 1,2 결과 : ["A","B","B","A","A"] ["A","B","A","B"]
위와 같이 문자열을 전개하여 배열로 만들어준 다음에 map() 함수를 사용하여 A와 B를 바꿔준 배열을 만들어줍니다.
const solution = (str,pat) => [...str].map((el)=> el === 'A' ? 'B' : 'A');
→ 입출력 예 1,2 결과 : ["B","A","A","B","B"] ["B","A","B","A"]
위와 같이 바꿔준 배열을 join() 함수를 사용하여 배열의 각 요소를 문자열로 연결해 줍니다.
마지막으로 includes() 함수와 삼항 연산자를 사용하여 값을 반환해 주어 마무리해주면 됩니다.
'Coding Test > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 배열 만들기 3 (2) | 2024.01.26 |
---|---|
[프로그래머스] 특별한 이차원 배열 1 (JavaScript) (1) | 2024.01.24 |
[프로그래머스] Lv0 0떼기 (JavaScript) (0) | 2024.01.20 |
[프로그래머스] Lv0 가까운 1 찾기 (JavaScript) (0) | 2024.01.20 |
[프로그래머스] Lv0 5명씩 (JavaScript) (1) | 2024.01.20 |