※ 모든 문제의 저작권은 SW Expert 아카데미에 있습니다. 학습 기록용으로 입니다. 문제시 삭제하겠습니다.
6319. [파이썬 프로그래밍 기초(1) 파이썬의 기본 구조와 기초 문법] 8. 함수의 기초 1
다음의 결과와 같이 반목문을 이용해 단어의 순서를 거꾸로 해 반환하는 함수를 작성하고
그 함수를 이용해 회문(앞뒤 어느 쪽에서도 같은 단어, 말) 여부를 판단하는 코드를 작성하십시오.
입력_
eye
출력_
eye
입력하신 단어는 회문(Palindrome)입니다.
[문제 풀이]
# 함수 생성
def check_palindrome(word):
# 입력받은 단어 출력
print(word)
# 단어를 리스트화
word = list(map(str, word))
# 단어의 길이를 2로나눈 몫만큼 반복
for i in range(len(word) // 2):
# 앞부터 == 뒤부터 비교
if word[i:] == word[len(word)::-1]:
# 맞다면 회문출력
print('입력하신 단어는 회문(Palindrome)입니다.')
else:
print('입력하신 단어는 회문(Palindrome)이 아닙니다.')
# 입력받기
word = input()
# 함수에 인자로 전달
check_palindrome(word)
6320. [파이썬 프로그래밍 기초(1) 파이썬의 기본 구조와 기초 문법] 8. 함수의 기초 2
다음과 같이 사용자 2명으로부터 가위, 바위, 보를 입력 받아
가위, 바위, 보 규칙이 정의된 함수를 이용해 승패를 결정하는 코드를 작성하십시오.
입력_
홍길동
이순신
가위
바위
출력_
바위가 이겼습니다!
[문제 풀이]
# 연팩 연산자를 사용하는 함수 생성
def rsp_game(*rsp):
# 리스트 생성
game = ['가위', '바위', '보']
# 낸 값이 같다면 비긴거 출력
if rsp[2] == rsp[3]:
print("비겼습니다!")
# 리스트의 인덱스를 이용해 비교
elif game.index(rsp[2]) < game.index(rsp[3]):
# 만약 가위와 보면 가위가 이긴 것 출력
if game.index(rsp[2]) == 0 and game.index(rsp[3]) == 2:
print('가위가 이겼습니다!')
else: # 반대 요소들 출력
print(rsp[3]+'가 이겼습니다!')
# 반대 상황을 비교한 것으로 위와 동일
elif game.index(rsp[2]) > game.index(rsp[3]):
if game.index(rsp[2]) == 2 and game.index(rsp[3]) == 0:
print('가위가 이겼습니다!')
else:
print(rsp[2]+'가 이겼습니다!')
# 형식에 맞게 입력받기
a_name = input()
b_name = input()
a_hand = input()
b_hand = input()
# 함수에 인자로 입력
rsp_game(a_name, b_name, a_hand, b_hand)
6321. [파이썬 프로그래밍 기초(1) 파이썬의 기본 구조와 기초 문법] 8. 함수의 기초 3
소수를 검사하는 함수를 정의하고, 다음의 결과와 같이 사용자가 입력한 숫자가
소수인지를 판단하는 프로그램을 작성하십시오.
소수일 경우 "소수입니다." 출력, 아닐 경우 "소수가 아닙니다." 출력
입력_
13
출력_
소수입니다
[문제 풀이]
# 함수 생성
def check_prime(num):
# 입력받은 숫자가 1이면 소수가 아니라고 출력
if num == 1:
print('소수가 아닙니다.')
return
# 2부터 num까지
for i in range(2, num):
# 나눠진다면 소수가 아니라고 출력
if num % i == 0:
print('소수가 아닙니다.')
return
# 나머지 경우들은 소수라고 출력
print('소수입니다.')
# 정수로 입력받기
n = int(input())
# 엽력받은 수를 인자로 전달
check_prime(n)
6323. [파이썬 프로그래밍 기초(1) 파이썬의 기본 구조와 기초 문법] 8. 함수의 기초 4
다음의 결과와 같이 피보나치 수열의 결과를 생성하는 프로그램을 작성하십시오.
입력_
10
출력_
[1, 1, 2, 3, 5, 8, 13, 21, 34, 55]
[문제 풀이]
# 함수 생성
def fabonacci_numbers(num):
# 값을 0으로 num개 가진 리스트 생성
lst = [0] * num
# 인덱스 0엔 1값으로 지정
lst[0] = 1
# num-1만큼 반복
for i in range(num-1):
# 다음 인덱스값 = 전 인덱스값 + 현 인덱스값
lst[i+1] = lst[i-1] + lst[i]
print(lst) # 출력
# 정수로 입력받기
n = int(input())
# 입력받은 수를 인자로 전달
fabonacci_numbers(n)
6324. [파이썬 프로그래밍 기초(1) 파이썬의 기본 구조와 기초 문법] 8. 함수의 기초 5
리스트의 항목 중 유일한 값으로만 구성된 리스트를 반환하는 함수를 정의하고
이 함수를 이용해 리스트의 중복 항목을 제거하는 프로그램을 작성하십시오.
출력_
[1, 2, 3, 4, 3, 2, 1]
[1, 2, 3, 4]
[문제 풀이]
# 함수 생성
def remove_duplicate(data_lst):
# 빈리스트 생성
lst = []
# 입력받은 리스트동안
for i in data_lst:
# i가 생성한 리스트에 없다면
if i not in lst:
# append를 사용해 추가
lst.append(i)
# 출력
print(lst)
# 지정된 리스트
input_lst = [1, 2, 3, 4, 3, 2, 1]
print(input_lst)
# 리스트를 인자로 전달
remove_duplicate(input_lst)
6325. [파이썬 프로그래밍 기초(1) 파이썬의 기본 구조와 기초 문법] 8. 함수의 기초 6
정렬된 숫자를 가진 리스트에서 특정 숫자를 찾는 함수를 정의하고,
이 함수를 이용해 임의의 숫자의 포함 여부를 출력하는 프로그램을 작성하십시오.
출력_
[2, 4, 6, 8, 10]
5 => False
10 => True
[문제 풀이]
# 함수 생성
def check_num(num, data_lst):
# 입력받은 num이 리스트에 없으면
if num not in data_lst:
# 형식에 맞게 False출력
print(f'{num} => False')
# 있으면 True출력
else:
print(f'{num} => True')
# 지정된 리스트
input_lst = [2, 4, 6, 8, 10]
print(input_lst)
# 리스트를 인자로 전달
check_num(5, input_lst)
check_num(10, input_lst)
6326. [파이썬 프로그래밍 기초(1) 파이썬의 기본 구조와 기초 문법] 8. 함수의 기초 7
다음과 같이 팩토리얼을 구하는 함수를 정의해 입력된 숫자에 대한
팩토리얼 값을 구하는 프로그램을 작성하십시오.
입력_
5
출력_
120
[문제 풀이]
# 함수 생성
def get_factorial(num):
# 1부터 num-1까지 반복(첨에 num을 곱하기 때문)
for i in range(1, num):
num *= i
print(num)
# 정수형으로 입력받기
input_num = int(input())
# 함수에 인자로 전달
get_factorial(input_num)
6327. [파이썬 프로그래밍 기초(1) 파이썬의 기본 구조와 기초 문법] 8. 함수의 기초 8
숫자에 대해 제곱을 구하는 함수를 정의히고, 다음과 같이 숫자를 콤마(,)로 구분해 입력하면
정의한 함수를 이용해 제곱 값을 출력하는 프로그램을 작성하십시오.
입력_
2, 3
출력_
square(2) => 4
square(3) => 9
[문제 풀이]
# 함수 생성
def get_square(num):
# 입력받은 리스트 길이만큼 1을 값으로 가진 리스트 생성
lst = [1] * len(num)
# i가 num에 있으면
for i in num:
# 리스트에 i추가
lst.append(i)
# 형식에 맞게 출력
print(f'square({lst[i]}) => {lst[i] ** 2}')
#print(f'square({lst[i]}) => {lst[i] * lst[i]}')
# 정수형이며 ','로 끊어서 리스트에 입력받기
input_num = list(map(int, input().split(',')))
# 함수에 인자로 전달
get_square(input_num)
6328. [파이썬 프로그래밍 기초(1) 파이썬의 기본 구조와 기초 문법] 8. 함수의 기초 9
인자로 전달된 두 개의 문자열 중 길이가 더 긴 문자열을 출력하는 함수를 정의하고
결과를 출력하는 프로그램을 작성하십시오.
입력_
one, three
출력_
three
[문제 풀이]
# 함수 생성
def get_str_len(word):
# 리스트 인덱스 값의 길이 비교 후 형식에 맞게 출력
if len(word[0]) < len(word[1]):
print(word[1])
elif len(word[0]) > len(word[1]):
print(word[0])
else:
print('길이가 같다.')
# ', '로 끊어서 문자열을 리스트에 입력받기
input_str = input().split(', ')
# 함수에 인자로 전달
get_str_len(input_str)
6329. [파이썬 프로그래밍 기초(1) 파이썬의 기본 구조와 기초 문법] 8. 함수의 기초 10
인자로 전달된 숫자를 이용해 카운트다운하는 함수 countdown을 정의하고,
이 함수를 이용하여 countdown(0), countdown(10)을 순서대로 실행하십시오.
0보다 작거나 같은 인자가 전달되었을 경우 "카운트다운을 하려면 0보다 큰 입력이 필요합니다."를 출력하십시오.
출력_
카운트다운을 하려면 0보다 큰 입력이 필요합니다.
10
9
8
7
6
5
4
3
2
1
[문제 풀이]
# 함수 생성
def countdown(num):
# num이 0보다 작거나 같으면 형식에 맞게 출력
if num <= 0:
print('카운트다운을 하려면 0보다 큰 입력이 필요합니다.')
# 0보다 크다면
else:
# num부터 1까지 -1씩하며 출력
for i in range(num, 0, -1):
print(i)
# 함수에 인자로 전달
countdown(0)
countdown(10)