문제 접근 방법
1. 반복문의 경우
> Bottom - up (작은 문제에서 출발)
2. 재귀함수의 경우
> Top-down (큰 문제에서 출발)
recursion = 재귀함수
재귀함수에서는 종료조건이 꼭 있어야한다.!
# 2진수 구하기
(방법1 : 내장함수 사용)
print(bin(11)[2:]) #2진수, 0b 지우기 print(oct(11)) #8진수 print(hex(11)) #16진수
(방법2 : while문 사용)
result='' input_num=10 while True: if input_num%2==0: result+='0' else: result+='1' x=x//2 if x==1 or x==0: print(result[::-1]) break
(방법3 : 재귀함수 사용)
result = '' def 이진수구하기(입력값): if 입력값 == 1 or 입력값 == 0: print(입력값, end='') else: 이진수구하기(입력값 // 2) print(입력값 % 2, end='') def 이진수구하기2(입력값): if 입력값<2: return str(입력값) else: return str(이진수구하기(입력값//2)) + str(입력값%2) 이진수구하기(11) 이진수구하기2(11)
이진수구하기2(11) = '1011'
이진수구하기2(5) + str(1) = '101' + '1' = '1011'
이진수구하기2(2) + str(1) => str(1) + str(1) = '101'
이진수구하기2(1) + str(0)= > str(1) = '10'
# 문자열 뒤집기
result='' def 문자열뒤집기(문자열): if 문자열=='': return None else: 문자열뒤집기(문자열[1:]) result+=문자열[0] #내가 짠 방법 def 문자열뒤집기(문자열): if 문자열=='': return str(문자열) else: return str(문자열뒤집기(문자열[1:]))+str(문자열[0]) print(문자열뒤집기('hello'))
문자열뒤집기('hello')
문자열뒤집기('ello') + str(h) =olleh
문자열뒤집기('llo') + str(e) = olle
문자열뒤집기('lo') + str(l) = oll
문자열뒤집기('o')+str(l) = ol
문자열뒤집기('') + str(o)
'여니의 Side Project > 제주코딩베이스캠프 서포터즈 2기' 카테고리의 다른 글
[제주코딩베이스캠프] 눈떠보니 코딩테스트 전날 | 정렬이론 (0) | 2021.08.14 |
---|---|
[제주코딩베이스캠프] 눈떠보니 코딩테스트 전날 | 재귀함수_보강예제 (0) | 2021.08.06 |
[제주코딩베이스캠프] 눈떠보니 코딩테스트 전날 | 재귀함수2 (0) | 2021.08.03 |
[제주코딩베이스캠프] 눈떠보니 코딩테스트 전날 | 문제7. Eureka! (0) | 2021.08.03 |
[제주코딩베이스캠프] 눈떠보니 코딩테스트 전날 | 문제6. 밭의 비밀 (0) | 2021.08.02 |