| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
Tags
- 자료구조
- 이벤트
- 내일배움카드
- 모던 자바스크립트 딥 다이브
- JavaScript
- useMemo
- MegabyteSchool
- 프로그래머스
- 프론트엔드
- 패스트캠퍼스
- react
- 개발 공부
- 모던 딥 다이브 자바스크립트
- GIT
- Github
- 입문
- 자바스크립트
- CSS
- next.js
- styled-components
- 비전공자
- TypeScript
- 리액트
- 메가바이트스쿨
- 국비지원교육
- 코딩테스트
- 개발자취업부트캠프
- useRef
- 공식문서
- 알고리즘
Archives
- Today
- Total
개발 기록 남기기✍️
[프로그래머스] 옹알이(1) 본문
🗒️ 문제 설명
머쓱이는 태어난 지 6개월 된 조카를 돌보고 있습니다. 조카는 아직 "aya", "ye", "woo", "ma" 네 가지 발음을 최대 한 번씩 사용해 조합한(이어 붙인) 발음밖에 하지 못합니다. 문자열 배열 babbling이 매개변수로 주어질 때, 머쓱이의 조카가 발음할 수 있는 단어의 개수를 return하도록 solution 함수를 완성해주세요.
⚠️ 제한 사항
- 1 ≤ babbling의 길이 ≤ 100
- 1 ≤ babbling[i]의 길이 ≤ 15
- babbling의 각 문자열에서 "aya", "ye", "woo", "ma"는 각각 최대 한 번씩만 등장합니다.
- 즉, 각 문자열의 가능한 모든 부분 문자열 중에서 "aya", "ye", "woo", "ma"가 한 번씩만 등장합니다.
- 문자열은 알파벳 소문자로만 이루어져 있습니다.
👀 입출력 예
| babbling | result |
| ["aya", "yee", "u", "maa", "wyeoo"] | 1 |
| ["ayaye", "uuuma", "ye", "yemawoo", "ayaa"] | 3 |
❇️ 나의 풀이
- babbling의 item에 대한 함수 실행 결과를 담을 빈 배열을 만들고, map 함수로 babbling 배열을 순회한다.
- map 함수 안에서 item은 초기 babbling item 값을 할당한 뒤, 옹알이 배열을 순회하는 for 문을 실행한다.
- for 문 안에서 item이 옹알이 item을 포함하고 있다면 replace 함수를 실행시켜 빈 문자열로 대체한다. 이 때, 옹알이 아이템은 한번씩만 등장할 수 있으므로 replaceAll이 아닌 replace를 사용하면 일치하는 첫번째 값만 대체한다!
- for 문이 끝나면 result 배열에 item 값을 push하고, map 함수가 끝난 뒤 result에 빈 문자열인 아이템만 filter하고 length를 구한다.
function solution(babbling) {
const arr = ["aya", "ye", "woo", "ma"];
const result = [];
babbling.map(v => {
let item = v;
for(let i=0; i<arr.length; i++){
item = v.includes(arr[i]) ? item.replace(arr[i],'') : item
}
result.push(item)
})
return result.filter(v => v === "").length
}'코딩 테스트 연습' 카테고리의 다른 글
| [프로그래머스] 달리기 경주 (0) | 2023.07.02 |
|---|---|
| [프로그래머스] 두 정수 사이의 합 (0) | 2023.03.29 |
| [프로그래머스] 유한소수 판별하기 (0) | 2023.01.07 |
| [프로그래머스] 치킨 쿠폰 (0) | 2023.01.06 |
| [프로그래머스] 다항식 더하기 (0) | 2023.01.04 |