[약수의 합]
My answer
def solution(n):
answer = 0
for i in range(1,n+1):
if(n%i==0):
answer+=i
return answer
Another answer
def solution(n):
return n + sum([i for i in range(1, (n // 2) + 1) if n % i == 0])
더보기
위의 코드에서 반복문의 범위를 저렇게 설정해준 이유는 어차피 n/2가 넘어가면 약수가 자기 자신밖에 없기 때문에 자기자신은 따로 더해줌으로써 더 빠른시간내에 구현
[시저암호]
My answer
import string
def solution(s, n):
up=list(string.ascii_uppercase)
low=list(string.ascii_lowercase)
answer = ''
for i in range(len(s)):
if('A'<= s[i]<='Z'):
p=up.index(s[i])+n
answer+=up[p%26] # p-26 같은거 말고 p%26을하면 한번에 해결된다.
elif('a'<=s[i]<='z'):
p=low.index(s[i])+n
answer+=low[p%26]
else:
answer+=s[i]
return answer
----------------------------------------------------------
# 개선버전 대소문자 판별을 isupper()를 이용해서 더 간단히 함
# ->아예 in함수를 이용해서 대소문자 판별을 해도됨
for i in range(len(s)):
if(s[i]==' '):
answer+=s[i]
elif(s[i].isupper()==1):
p=up.index(s[i])+n
answer+=up[p%26]
else:
p=low.index(s[i])+n
answer+=low[p%26]
728x90
반응형
'코딩테스트 > 프로그래머스[Python]' 카테고리의 다른 글
[프로그래머스] 09/13 (3) (0) | 2021.09.13 |
---|---|
[프로그래머스] 09/09 (3) (0) | 2021.09.09 |
[프로그래머스] 09/08 (6) (0) | 2021.09.08 |
[프로그래머스] 09/05 (12) (0) | 2021.09.05 |
[프로그래머스] 09/03 (3) (0) | 2021.09.03 |