[TIL] 1일차 - Jacoste 알고리즘

Daehyun·2022년 10월 14일
0

[TIL]

목록 보기
1/6

취업 준비를 시작했다.
가장 먼저 떠오른, 그리고 가장 먼저 시작한 코테...!

42gg 팀원들과 알고리즘 스터디팀을 만들어서 공부를 시작했다.

나는 아직 c에서 벗어나지 못해서 모든 코드가 c에 맞춰져 있다.
그러나 친구들과 함께 코드를 공유하면서 다양한 코드와 기능들을 보면서 배우고 있다! 신기해 신기해!!

🪄 정규표현식 '\b' 그리고 '\B'

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

\b, \B는 주로 단어 검색에 유용하다. 명칭은 단어 경계(word boundary)이다.
/b는 문자(\w에 해당, 영문자, 숫자, '_')와 비문자(\W에 해당) 부분의 경계를 의미한다.
띄워쓰기는 비문자에 해당하므로 /b를 사용해 단어의 경계를 정하고 원하는 결과를 만들 수 있다!!

\B는 비문자와 비문자 사이의 경계, 또는 문자와 문자 사이의 경계를 의미한다. 사실 찾아보니 조금 복잡해보이기도 하고, \b 이외의 상황인것 같기도하다. 좀 더 공부를 해보도 다음에 기회가 있다면 추가적으로 포스팅해야겠다.

📈 정렬 📉

c언어로 알고리즘 공부를 할 당시 sort함수를 구현했던 기억이 있어서 이번에도 함수를 직접 구현해서 사용해봤다.

arr.sort(function compare(a, b) {
	if (a > b) return 1;  // 현재 상태는 오름차순
    if (a < b) return -1; // +, - 를 바꾸면 내림차순
    return 0;
});

그냥 당연히 머릿속에 떠올랐는데, 자바스크립트는 sort함수를 제공해준다. 다만 인자가 string이면 1 과 10을 구분하지 못하는 문제가 있어 이렇게 구현해준다고 한다.
그러나..!! 이 함수를 화살표 함수로 간단하게도 만들 수 있었다!

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

이게 무슨 일이람...? 이거 수지팍도 지난번에 알려준 내용이다. 다들 알고 나만 몰랐네? 그러나 이번 기회에 배웠다ㅎㅎㅎㅎㅎ

📌 나머지

다들 다양한 메서드 함수를 잘 사용했다. .reduce() .join(), .split() 등 많은 함수들이 있었다. 이런 기능들을 사용 해본적이 없어서 그냥 절차적으로 머릿속에 그려지는 기능들을 모두 직접 구현했었는데, 친구들을 보며 함수들 공부가 필요하다는 생각이 들었다. 부지런히 공부해야겠다!!

참고

1개의 댓글

comment-user-thumbnail
2022년 10월 17일

열심히하는 대킴님 멋져요!🧑🏻‍💻

답글 달기