분류 전체보기
-
31.5 심사문제 : 재귀호출로 피보나치 수 구하기코딩도장 심사문제모음 2020. 11. 4. 16:42
표준 입력으로 정수 한 개가 입력됩니다(입력 값의 범위는 10~30). 다음 소스 코드를 완성하여 입력된 정수에 해당하는 피보나치 수가 출력되게 만드세요. 피보나치 수는 0과 1로 시작하며, 다음 번 피보나치 수는 바로 앞의 두 피보나치 수의 합입니다. 사용한 코드 1. def 2. if 3. return 첫 접근 방법 0, 1로 시작하는점 호출하는 인수의 개수가 "하나"인점 수열의 일정 규칙이 있다는점을 파악하여 문제를 해결 할 수 있다. 풀이 코드를 작성하기 전 문제부터 살펴보자 입력값 n 과 결과값을 나열하여 수열이라 생각해 관계를 살펴보자. # n # 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21... ..
-
TIL. 27 재귀 호출(recursive call)TIL 2020. 11. 4. 13:19
## 함수에서 재귀호출 사용하기 ## 재귀호출 (recursive call) : 함수 안에서 자기자신을 호출하는 방식을 재귀호출이라 한다. ## 일반적인 상황에서는 사용되지 않지만 알고리즘을 구현할때 매우 유용하다 (구현 == 만들다와 같은 뜻) ## 보통 알고리즘에 따라서 반복문으로 구현한 코드보다 좀 더 직관적이고 이해하기 쉬운 경우가 많다. def helllo(): print('hello mun') helllo() helllo() ## helllo 함수 안에서 자기 자신을 호출하고 있는 상황이다. ## 무한루프 처럼 작동하다가 어느 순간 error가 발생하는데 ## 이유는 파이썬에서는 최대 재귀 깊이(maximum recursion depth)가 1,000 으로 정해져있기 때문이다. ## 즉, he..
-
31.4 연습문제 : 재귀호출로 회문 판별하기코딩도장 심사문제모음 2020. 11. 4. 13:18
다음 소스 코드를 완성하여 문자열이 회문인지 판별하고 결과를 True, False로 출력되게 만드세요. 여기서는 재귀호출을 사용해야 합니다. 첫 접근 방법 연습문제 치고는 여러웠다. 힌트를 봐야만 실마리를 잡을 수 있었다. 사실 회문을 왜 재귀호출로 판별해야하는지는 이해가 가질 않는다. 또한, 이전에 배웠던 index 슬라이싱을 이용해야 한다는 점에서 다시 한번 인지되어 좋은 문제였다. 풀이 ## 해당 함수는 True or False 두가지 값을 반환해야하므로 재귀호출을 중지시켜주는 조건이 2개가 필요하다 def rrr (word): if len(word) < 2: return True elif word[0] != word[-1]: return False else: return rrr(word[1:-1]..
-
TIL.26 함수 매개변수 및 인수TIL 2020. 11. 3. 17:39
# 함수에서 위치 인수와 키워드 인수 사용하기 ## 위치 인수와 리스트 언패킹 ## 위치 인수(positional argument) : 아래와 같이 함수에 인수를 순서대로 넣는 방식을 위치 인수라고 한다. 인수의 위치가 정해져있다는 뜻이다. print(1, 2, 3) # 우리가 사용하는 흔한 방식 ## 위치 인수를 이용해 함수를 만들고 호출해보자. def aaa (a, b, c): print(a) print(b) print(c) aaa(1, 2, 3) :: 1 2 3 ## 언패킹 사용하기 ## 위에서 만든 함수에서 언패킹을 사용해보자 ## 아래와 같이 리스트 또는 튜플 앞에 *(애스터리스크)를 붙여 함수에 넣어주면 된다. (함수를 호출 할때) # 함수(*리스트) # 함수(*튜플) def aaa (a, b..
-
30.7 심사문제 : 가장 낮은 점수, 높은 점수와 평균 점수를 구하는 함수 만들기코딩도장 심사문제모음 2020. 11. 3. 16:47
표준 입력으로 국어, 영어, 수학, 과학 점수가 입력됩니다. 다음 소스 코드를 완성하여 가장 높은 점수, 가장 낮은 점수, 평균 점수가 출력되게 만드세요. 평균 점수는 실수로 출력되어야 합니다. 사용한 코드 1. def 2. return 3. min 4. max 5. sum 6. len 첫 접근 방법 함수를 2개를 만든다는점과 호출하는 인수의 개수가 다른걸로 보아 *args를 써야한다는 내용만 가지고 문제를 해결 하였다. 풀이. 1. 먼저 아래에서 함수 2개를 호출하고 있다 min, max // average :==> 따라서 함수 2개를 만들어줘야한다. 특히 리턴 반환값이 여러개일 경우 ,(콤마)로 구분해준다. ## return min(args), max(args) == return (min(args),..
-
30.6 연습 문제 : 가장 높은 점수를 구하는 함수 만들기코딩도장 심사문제모음 2020. 11. 3. 16:25
다음 소스 코드를 완성하여 가장 높은 점수가 출력되게 만드세요. 풀이 def get_max_score (*args): return max(args) 함수를 호출 할때 인수의 개수가 다양한점으로 보아 가변인수로 함수를 정의하고 위치 인수로 호출하고 있으며 파이썬 max 함수를 이용해 값 중 최고 값을 구하고 반환 반환 값은 max_score에 할당된다. 어떠한 값을 임의의 변수에 할당해야하기에 리턴으로 반환하느것을 잊지말자 리스트, 튜플 이므로 * 에스터리스크를 1개 사용한 args로 함수이름을 정해준다. (관례 이대로 쓰도록 하자)
-
29.4 심사문제 : 사칙 연산 함수 만들기코딩도장 심사문제모음 2020. 11. 2. 22:10
표준 입력으로 숫자 두 개가 입력됩니다. 다음 소스 코드를 완성하여 두 숫자의 덧셈, 뺄셈, 곱셈, 나눗셈의 결과가 출력되게 만드세요. 이때 나눗셈의 결과는 실수라야 합니다. 사용한 코드 1. def 2. return 첫 접근 방법 매개변수는 2개 / 리턴 반환값은 4개를 기억하자 풀이 매개변수 2개로 사칙연산 반환값 4개를 반환하는 함수를 만들어주면 된다. x, y = map(int, input().split()) def aaa (a, b): return (a+b, a-b, a*b, a/b) a, b, c, d = aaa(x, y) print('덧셈 : {}, 뺄셈 : {}, 곱셈 : {}, 나눗셈 : {}'.format(a, b, c, d)) ## TIL. 16 문자열 서식 지정자 및 포매팅 사용하기..
-
29.3 연습문제 : 몫과 나머지 구하는 함수 만들기코딩도장 심사문제모음 2020. 11. 2. 21:54
다음 소스 코드를 완성하여 x를 y로 나누었을 때의 몫과 나머지가 출력되게 만드세요. 풀이 몫을 구하는 // 연사자와 나머지를 구하는 % 연산자를 이용하면 된다. 바로 함수를 호출한 후 인수를 넣어도 (3, 1 ) 값이 나오긴 하지만 튜플을 언패킹하는 방법으로 반환된 튜플 (3, 1) = a, b 언패킹하여 각 변수에 할당해주고 format 메서드를 이용해 출력문을 꾸며보자. def aaa(a, b) : return (a//b, a%b) a, b = aaa(10,3) print(a) # 3 print(b) # 1 print('몫 : {}, 나머지 : {}'.format(a, b)) :: 몫 : 3, 나머지 : 1