알고리즘 :: 신규 아이디 추천 (javascript)
javascript에 익숙해지기 위해 관련 언어를 서칭하며 문제를 해결해 보았습니다.
관련 문제는 2021 KAKAO BLIND RECRUITMENT 신규아이디추천 입니다.
정규식을 알아야 풀 수 있는 문제라고 접근했는데 서치해보니 문자열의 각 문자를 참조할 수 있는 방법에 대해 공부할 수 있었습니다.
MDN Web Docs에서 관련 내용을 참고해보면 ThecharCodeAt()method returns an integer between0and65535representing the UTF-16 code unit at the given index. 로 소개되어있습니다.
즉, Unicode로 반환되기 때문에 우리가 은히 알고있는 아스키 코드표를 참고해서 비교해봄으로써 문제에서 요구한 사항을 지켜낼 수 있습니다.
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
function solution(new_id) {
var answer = '';
//step1
new_id = new_id.toLowerCase()
var new_id_g = ""
//step2
for(let i=0; i<new_id.length; i++){
let check = new_id.charCodeAt(i)
if((check== 45|| check==95 || check==46) || (check>=97 && check<=122) || (check>=48 && check<=57))
new_id_g+=new_id[i]
}
console.log(new_id_g)
var new_id_gg = ""
//step3
for(let i=0; i<new_id_g.length-1; i++){
if(new_id_g[i]=='.' && new_id_g[i]==new_id_g[i+1])
continue
else
new_id_gg+=new_id_g[i]
}
new_id_gg+=new_id_g[new_id_g.length-1]
//step4
if(new_id_gg[0]=='.' && new_id_gg[new_id_gg.length-1]=='.')
new_id_gg=new_id_gg.substr(1,new_id_gg.length-1)
if(new_id_gg[0]=='.' && new_id_gg[new_id_gg.length-1]!='.')
new_id_gg=new_id_gg.substr(1,new_id_gg.length)
if(new_id_gg[0]!='.' && new_id_gg[new_id_gg.length-1]=='.')
new_id_gg=new_id_gg.substr(0,new_id_gg.length-1)
//step5
if(new_id_gg.length == 0)
new_id_gg='a'
//step6
if(new_id_gg.length>=16){
new_id_gg=new_id_gg.substr(0,15)
if(new_id_gg[new_id_gg.length-1]=='.')
new_id_gg=new_id_gg.substr(0,14)
}
//step7
while(new_id_gg.length<=2){
new_id_gg+=new_id_gg[new_id_gg.length-1]
}
return new_id_gg;
}
|
cs |
'알고리즘' 카테고리의 다른 글
프로그래머스 2개 이하로 다른 비트 (0) | 2021.05.20 |
---|---|
완주하지못한선수 / k번째 수 (0) | 2021.05.08 |
BOJ 1619, 최소비용구하기 (0) | 2020.11.08 |
숨바꼭질4 (0) | 2020.11.07 |
특정거리의 도시찾기 (0) | 2020.11.07 |
댓글
이 글 공유하기
다른 글
-
프로그래머스 2개 이하로 다른 비트
프로그래머스 2개 이하로 다른 비트
2021.05.20 -
완주하지못한선수 / k번째 수
완주하지못한선수 / k번째 수
2021.05.08 -
BOJ 1619, 최소비용구하기
BOJ 1619, 최소비용구하기
2020.11.08 -
숨바꼭질4
숨바꼭질4
2020.11.07