벌써 부트캠프 3주차? 가 끝나는데 짧은 기간에 많은 것을 배운 것 같다.
물론 혼자 공부하며 독학으로 개념을 다진 것도 있지만, 역시 직접 배워서 써보는 것이랑은 많이 다르다.
대강 이렇게 쓰이나...? 하던 것들이 배움을 이어가며 이렇게 쓰이는구나...! 로 바뀌고 있다.
점차 이러한 것들이 늘어가면, 부트캠프 끝날 때즈음에는 더욱 향상된 내가 되겠지 싶다.
이번 주말에는
- 복습을 하며 미리 만들어놨던 스타벅스 사이트에 JS를 적용 시켜볼 것이다. + Swiper 사용
- 프로그래머스 입문(Lv0)을 전부 끝낼 생각이다.
- 지금까지 배운 내용을 복습(노션에 이미 정리 완료) + 이번 주차에 배운 내용을 노션에 정리할 예정이다.
- Map 과 Set에 대해 가볍게 개념 공부를 할 예정이다.
- 마지막으로 시간이 만약 남는다면 .... 코어 자바스크립트 '5장 클로저' 부분을 마저 읽을 것이다.
프로그래머스 옹알이(1)
나는 전부터 프로그래머스 보단 백준을 풀어왔었다... 이유는 그냥..?
그래서 이 문제가 사악하다고 하다는 것도 처음 알았고 그래서 괜히 지레 겁먹기는 했지만..
근데 프로그래머스 정말 편하고 친절하다는 것을 느꼈다. 이 문제는 수업 시간에 풀어보라고 시간을 주셔서 풀어보았다.
배운 내용을 바탕으로 이거저거 써보려고 좀 노력하다가 코드가 좀 더러운데... 지금 생각해보니 includes() 로도 충분히 풀 수 있을 것 같다. 물론 까다롭기는 했지만, 문제 풀면서 일할 때 펫 이름을 변경하는 함수 만들 때가 생각나서 재미있었다.
문제 설명
머쓱이는 태어난 지 6개월 된 조카를 돌보고 있습니다. 조카는 아직 "aya", "ye", "woo", "ma" 네 가지 발음을 최대 한 번씩 사용해 조합한(이어 붙인) 발음밖에 하지 못합니다. 문자열 배열 babbling이 매개변수로 주어질 때, 머쓱이의 조카가 발음할 수 있는 단어의 개수를 return하도록 solution 함수를 완성해주세요.
제한사항
1 ≤ babbling의 길이 ≤ 1001 ≤ babbling[i]의 길이 ≤ 15babbling의 각 문자열에서 "aya", "ye", "woo", "ma"는 각각 최대 한 번씩만 등장합니다.즉, 각 문자열의 가능한 모든 부분 문자열 중에서 "aya", "ye", "woo", "ma"가 한 번씩만 등장합니다.문자열은 알파벳 소문자로만 이루어져 있습니다.
유의사항
네 가지를 붙여 만들 수 있는 발음 이외에는 어떤 발음도 할 수 없는 것으로 규정합니다. 예를 들어 "woowo"는 "woo"는 발음할 수 있지만 "wo"를 발음할 수 없기 때문에 할 수 없는 발음입니다.
정규표현식은 잘만 쓰면 참 사기같다... 물론 잘쓰면이지만
게임 채팅이나 닉네임을 만들 때 보통 금칙어나 비방어 같은 걸 데이터 테이블로 저장한 다음 그걸 읽어오며 정규표현식을 대입해줬던 기억이 있따.
물론 그 코드는 내가 짠건 아니고 사수님이 짠걸 보고 리뷰한거지만... 정규표현식으로 읽어온 다음 대체 문자(*)로 변환하는게 친숙해서 그렇게 접근해봤다.
function solution(babbling) {
// 정규 표현식 사용
const checkWords =/aya|ye|woo|ma/;
const checkAlphabet = /[a-zA-Z]/;
const tmpArr = [...babbling];
// 1차적으로 aya|ye|woo|ma 이 포함된 문자열만 배열에 따로 저장
const resultArr = tmpArr.filter((value) => {
return checkWords.test(value);
});
let answerArr = [];
for(let i = 0; i < resultArr.length; i++) {
// 해당 문자열을 *로 치환
resultArr[i] = resultArr[i].replace(/aya|ye|woo|ma/g, '*');
// 최종적으로 * 말고 소문자/대문자가 들어간 경우는 제외하여 새로 배열로 저장
if(checkAlphabet.test(resultArr[i]) === false) {
answerArr.push(resultArr[i]);
}
}
return answerArr.length;
}
'학원에서 배운 것' 카테고리의 다른 글
QA 라이브러리, JEST! (0) | 2023.05.05 |
---|---|
[포스코x코딩온] 주차 회고 - 2023.02.22 ~ 팀프로젝트 시작 (0) | 2023.02.24 |