Skip to content

Commit 1db5a34

Browse files
authored
Merge pull request #904 from sangmandu/master
[Level01] 신규 아이디 추천, 약수의 개수와 덧셈
2 parents ca317c6 + 4c0d980 commit 1db5a34

File tree

2 files changed

+65
-0
lines changed

2 files changed

+65
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
'''
2+
https://programmers.co.kr/learn/courses/30/lessons/72410
3+
신규 아이디 추천
4+
정규식 사용 문제. 정규식을 모른다면 끔찍하다.
5+
'''
6+
7+
import re
8+
9+
def solution(new_id):
10+
new_id = new_id.lower()
11+
new_id = ''.join(re.findall('[a-z]|[0-9]|[.]|[_]|[-]', new_id))
12+
new_id = re.sub('[.]{2,}', '.', new_id)
13+
if len(new_id) and new_id[0] == ".":
14+
new_id = new_id[1:]
15+
if len(new_id) and new_id[-1] == ".":
16+
new_id = new_id[:-1]
17+
size = len(new_id)
18+
if not size: new_id += "a"
19+
if size >= 16:
20+
new_id = new_id[:15]
21+
if new_id[-1] == ".":
22+
new_id = new_id[:-1]
23+
while len(new_id) < 3:
24+
new_id = new_id + new_id[-1]
25+
return new_id
26+
27+
'''
28+
정규식이랑 if를 너무 혼재해서 사용한 듯 하다
29+
나보다 더 정규식을 잘 쓴 사람 코드를 배워야겠다
30+
심지어 코드 구성도 멋지다
31+
32+
import re
33+
34+
def solution(new_id):
35+
st = new_id
36+
st = st.lower()
37+
st = re.sub('[^a-z0-9\-_.]', '', st)
38+
# [^] 는 특정 문자를 제외하라는 의미
39+
40+
st = re.sub('\.+', '.', st)
41+
# 이 부분은 re.sub('[.]{2,}', '.', new_id)와 차이는 없다.
42+
43+
st = re.sub('^[.]|[.]$', '', st)
44+
# ^는 ~로 시작하는, $는 ~로 끝나는. 이 정규식 문법을 생각을 못했다. 문제 의도는 이거였던것 같다
45+
46+
st = 'a' if len(st) == 0 else st[:15]
47+
# 5~6단계를 합친 조건. 멋있다
48+
49+
st = re.sub('^[.]|[.]$', '', st)
50+
# 이 때는 첫 시작은 고려하지 않아도 된다. 그냥 복붙한 것으로 추정.
51+
52+
st = st if len(st) > 2 else st + "".join([st[-1] for i in range(3-len(st))])
53+
return st
54+
'''
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
'''
2+
https://programmers.co.kr/learn/courses/30/lessons/77884
3+
약수의 개수와 덧셈
4+
5+
'''
6+
7+
def solution(left, right):
8+
return sum([-num if num ** 0.5 == int(num ** 0.5) else num for num in range(left, right+1)])
9+
10+
'''
11+
'''

0 commit comments

Comments
 (0)