def solution(n):
answer = 0
while n > 0:
answer += n % 10
n = int(n / 10)
return answer
import math
def solution(n):
answer = 0
for i in range(1, n + 1):
if n % i == 0:
answer += i
return answer
def solution(n):
answer = ''
for i in range(n):
answer += "수" if i % 2 == 0 else "박"
return answer
에라토스테네스의 체가 먼저 떠오르긴 했는데, 일단 정석대로 풀었다. 효율성 검사하면 망하겠구만~ 했는데... 통과했다...
isPrime 을 루트로 했기 때문에 최대 1000 * 1000 번이라서 그런듯
import math
def isPrime(n):
if n == 1:
return False
for i in range(2, int(math.sqrt(n)) + 1):
if n % i == 0:
return False
else:
return True
def solution(n):
answer = 0
for i in range(1, n+1):
if isPrime(i):
answer += 1
return answer
def solution(seoul):
for i in range(len(seoul)):
if seoul[i] == "Kim":
return "김서방은 " + str(i) + "에 있다"
return '김서방은 없다'
def solution(s):
if len(s) != 4 and len(s) != 6:
return False
for c in s:
if not c.isdigit(): #if ord(c) < 48 or 57 < ord(c):
return False
return True
제발 좀 외우자.. chr ord A 65 a 97 0 48
def solution(s):
return ''.join(sorted(s, key=lambda x:-ord(x)))
# sort 를 안쓰고 해보고 싶어서 해당 코드도 작성해 보았다.
def solution(s):
answer = []
for c in s:
if len(answer) == 0:
answer.append(c)
continue
# 정렬 알고리즘.
for i in range(len(answer)):
if ord(c) > ord(answer[i]):
answer.insert(i, c)
break
else:
answer.append(c)
return ''.join(answer)