11 Mar 2017
|
알고리즘
프로그래밍
level 2. 자연수를 뒤집어 리스트로 만들기
출처
문제
digit_reverse함수는 양의 정수 n을 매개변수로 입력받습니다.
n을 뒤집어 숫자 하나하나를 list로 표현해주세요
예를들어 n이 12345이면 [5,4,3,2,1]을 리턴하면 됩니다.
풀이 (python)
def digit_reverse(n):
list = [int(i) for i in str(n)]
list.reverse()
return list
# 아래는 테스트로 출력해 보기 위한 코드입니다.
print("결과 : {}".format(digit_reverse(12345)));
다른사람 풀이
# 풀이1
def digit_reverse(n):
return [int(i) for i in str(n)][::-1]
# 풀이2
def digit_reverse(n):
return list(map(int, reversed(str(n))))
배운점
- .reverse() 메소드를 통해서 리스트 요소의 순서를 뒤집을 수 있다. 하지만 결과값을 리턴하지는 않는다.
- map(function, iterable)은 함수(f)와 반복 가능한(iterable) 자료형을 입력으로 받는다. map은 입력받은 자료형의 각 요소가 함수 f에 의해 수행된 결과를 묶어서 리턴한다.
- reversed() 함수를 통해 리스트 요소의 순서를 뒤집은 객체를 리턴한다.
10 Mar 2017
|
알고리즘
프로그래밍
level 2. JadenCase 문자열 만들기
출처
문제
Jaden_Case함수는 문자열 s을 매개변수로 입력받습니다.
s에 모든 단어의 첫 알파벳이 대문자이고, 그 외의 알파벳은 소문자인 문자열을 리턴하도록 함수를 완성하세요
예를들어 s가 “3people unFollowed me for the last week”라면 “3people Unfollowed Me For The Last Week”를 리턴하면 됩니다.
풀이 (python)
def Jaden_Case(s):
s = s.lower()
list_s = s.split()
list_s = [i.replace(i[0], i[0].upper(), 1) for i in list_s]
return ' '.join(list_s)
# 아래는 테스트로 출력해 보기 위한 코드입니다.
print(Jaden_Case("3people unFollowed me for the last week"))
다른사람 풀이
def Jaden_Case(s):
return s.title()
배운점
- String.split() 을 통해서 문자열을 리스트로 바꾼다.
- ’ ‘.join(List) 를 통해서 리스트를 문자열로 바꾼다.
- String.replace(old, new, 숫자) 를 통해서 문자열 안의 값을 바꿀 수 있다. 숫자 조건을 입력하면 그 숫자 만큼만 변경한다.
- String.title() 을 통해서 문자열 각단어의 첫 글자를 대문자로 바꾼다.
10 Mar 2017
|
알고리즘
프로그래밍
level 2. 하샤드 수
출처
문제
양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다. 예를들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다.
Harshad함수는 양의 정수 n을 매개변수로 입력받습니다. 이 n이 하샤드수인지 아닌지 판단하는 함수를 완성하세요.
예를들어 n이 10, 12, 18이면 True를 리턴 11, 13이면 False를 리턴하면 됩니다.
풀이 (python)
def Harshad(n):
sum = 0
for i in str(n):
sum = int(i) + sum
return False if n % sum else True
# 아래는 테스트로 출력해 보기 위한 코드입니다.
print(Harshad(18))
다른사람 풀이
def Harshad(n):
return n % sum(int(x) for x in str(n)) == 0
배운점
- int() 내장함수를 통해 문자열 형태의 숫자나 소수점이 있는 숫자 등을 정수 형태로 리턴한다.
- sum() 내장함수를 통해 매개변수의 합을 구할 수 있다.