[Jacoste: 1] 정규표현식과 sort

jabae·2022년 10월 13일
0

알고리즘 스터디

목록 보기
1/6

🤷‍♀️알고리즘 문제 풀기를 중단한지 얼마나 오래되었는가! 이참에 42gg의 프론트끼리 모여 알고리즘 스터디를 하기로 했다. 여러명이 모이니까 더 많이 배우게 되겠지! 혼자서 할 때보다 더 두근두근 기대가 많이 되었다.

어제 스터디 규칙을 정하고 오늘까지 문제를 풀어오기로 약속했다. 오늘 모여서 서로가 푼 문제를 어떻게 풀었는지 공유했는데, 서로 너무 다르게 풀어서 재밌었다. 😆

그래서 간단하게 알게된 것을 정리하고자 한다.

정규표현식

str.replace(/\b[a-z]/g, (c) => c.toUpperCase());

JadenCase 문자열 만들기에서 새로 알게된 정규표현식이다.

\b 는 word boundary로, 단어의 경계를 뜻한다. 그래서 위의 정규표현식은 단어를 찾아 첫 글자가 알페벳 소문자이면, 대문자로 바꾸는 식인 것이다.

정규표현식은 다 외우고 있다기보다 필요할 때 찾아서 쓰는 게 좋다고 들었는데, 이런 게 있구나를 알아야 떠올릴 수 있으니 알아놔야겠다.

sort

arr.sort((a, b) => a - b); // 오름차순
arr.sort((a, b) => b - a); // 내림차순

처음 .sort() 를 써 놓고 "왜 안되지?!?!"를 반복. 자바스크립트의 sort()는 문자열 중심으로 정렬한다. 따라서 숫자를 제대로 정렬하기 위해선 sort() 메서드의 함수를 수정해서 써야 한다.

그 외

JadenCase 문자열 만들기에서 .split(), .map(), .join() 을 써서 풀었는데, 같이 공부하는 팀원🐻이 메서드를 많이 쓰면 성능이 저하되지 않겠냐는 말에 한 번 더 생각하게 되었다. 가독성과 성능 그 사이를 고민하게 되었다.

그 외에 최솟값 만들기 문제를 내가 굉장히 어렵게 풀었는데, 다른 사람들이 푼 방식을 보고 원리를 설명 들으면서 내가 몰랐던 부분도 많이 알게되었다.

오늘도 성장했다 !! 😊

참고

정규표현식 \b : https://thesulks.tistory.com/67
메서드 성능 비교 : https://daesuni.github.io/Loop-performance/

profile
it's me!:)

0개의 댓글