코딩테스트 문제풀이 3

[JavaScript/프로그래머스] 가장 긴 팰린드롬

이번 주 스터디 주제가 문자열이었기 때문에 회문 문제 하나는 풀어봐야지 하는 마음으로 도전했는데 실패했다. 나는 그냥 index가 1인 요소부터 양쪽에 있는 문자가 같으면 점점 범위를 넓혀서 양쪽의 문자가 같은지 확인하고 반복문을 돌 때마다 현재 팰린드롬 길이를 저장하는데 이전에 저장된 길이보다 큰 경우에만 갱신해서 모든 반복문이 끝나면 가장 긴 팰린드롬 길이만 반환될 수 있게 구현했다. 하지만 특정 테스트케이스가 자꾸 오류가 나서 질문하기를 봤더니 내 코드에는 "aa"와 같이 연달아 반복되는 짝수 문자열을 커버하지 못하는 문제가 있었다. 그러고 보니까 이 코드의 문제 풀이 방식은 접근 방식부터 아주 틀렸다는 것을 깨달았다. 그래서 적지 않는 것으로 하고... 다른 블로그에서 정상적으로 잘 돌아가는 코드..

[JavaScript/프로그래머스] 신규 아이디 추천

출처: 2021 KAKAO BLIND RECRUITMENT 정규 표현식 연습하기 좋은 문제다. 원래는 불필요한 코드들이 더 많았는데 팀원들 제안 듣고 좀 더 간단하게 고쳤다. 원래는 문자열 길이가 3보다 작을 때, repeat() 메서드로 3에서 현재 문자열 길이 뺀 만큼 이전 문자열을 반복해주는 방식으로 구현했는데 코드 리뷰해준 분이 padEnd()를 알려주셔서 수정해봤다. [MDN - padEnd()] function solution(new_id) { const answer = new_id .toLowerCase() // 모든 문자를 소문자로 변환 .replace(/[^a-z\d-_.]/g, "") // 소문자, 숫자, -, _, .를 제외한 문자 제거 .replace(/[\.]{2,}/g, ".")..