프로그래머스 #11
KAKAO BLIND RECRUITMENT - 신규 아이디 추천
Level 1이라 해서 해봤는데 순간 멍했다
정규표현식을 오랜만에 접해서 그런가 생각이 바로 나지 않았음
또 replace 메소드를 체이닝해서 푼 다른 사람의 코드를 보고 체이닝이 된다는 사실을 깨달음..ㅋㅋ
다른 사람들의 풀이 방법들이 다양했다
나는 문자열을 다루는 것이 익숙하지는 않군..
function solution(new_id) {
let str = new_id.toLowerCase();
str = str.replace(/[^a-z\d\.\-\_]/g, '');
str = str.replace(/\.{2,}/g, '.');
str = str.replace(/(^\.)|(\.$)/g,'');
if(str === '') str += 'a';
if(str.length >= 16) {
str = str.slice(0, 15);
str = str.replace(/\.$/,'');
}
while (str.length <= 2){
str += str[str.length - 1];
}
return str;
}
폰켓몬
function solution(nums) {
const list = {};
for(let num of nums){
if(!list[num]) list[num] = [num];
else list[num].push(num);
}
const count = Object.keys(list).length;
const half = parseInt(nums.length / 2);
return count > half ? half : count;
}
입력받은 nums의 종류의 수만큼 다 고를 수 있다면 그게 답
입력받은 nums의 1/2보다 그 종류의 수가 많다면 고를 수 있는 것의 최대 값은 nums 길이의 반
다른 사람들 풀이를 보니 new Set()을 쓴다 뭘까!
Set 객체는 자료형에 관계 없이 원시 값과 객체 참조 모두 유일한 값을 저장할 수 있다.
이렇게 편한 것이..!
중복값을 없앨 때 좋은 듯하다
이제 프로그래머스는 Github에만 써야겠다 둘 다 쓰려니 번거롭다 ㅋㅋ
Author And Source
이 문제에 관하여(프로그래머스 #11), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@ntk100/프로그래머스-11저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)