info) 서브세션 3주차
[문제 1] While문을 활용하여 달러, 원화, 유로의 환산표를 만드는 프로그램을 작성하시오.
참조) • 1$당 환율 : 1443원(원화), 1.02€(유로)
from IPython.display import Image
Image("screenshot.png", width = 300)
[풀이]
import numpy as np
print("-" * 30)
print("달러($) 원화(원) 유로(€)")
print("-" * 30)
d = 10
while d <= 100:
print("{} {} {}".format(d, d*1440, np.round((d*1.02), 1)))
d = d + 10
print("-" * 30)
[문제2] 세 정수를 입력받아 중앙값을 리턴하는 함수를 작성하시오.
median3(a, b, c)
[풀이1]
def median3(a, b, c):
num_list = []
num_list.append(a)
num_list.append(b)
num_list.append(c)
num_list.sort()
result = num_list[1]
return result
median3(245, 23, 198)
[풀이2]
def median(a, b, c):
if a >= b:
if b >= c:
return b
elif a <= c:
return a
else:
return c
elif a >= c:
return a
elif b <= c:
return b
else:
return c
median(9, 7, 8)
[문제3] 리스트내에서 중앙값을 리턴하는 함수를 작성하시오.
median_list(num_list)
< 검증 데이터 >
even_len = [8, 46, 9, 83, 20, 37, 3, 43, 19, 96]
odd_len = [49, 5, 67, 39, 61, 92, 71, 57, 58, 2, 89]
median_list(even_len) 결과 ⇒ 28.5
medain_list(odd_len) 결과 ⇒ 58
[풀이]
def median_list(num_list):
num_list.sort()
if len(num_list) % 2 == 0:
result = (num_list[len(num_list) // 2] + num_list[(len(num_list) // 2) - 1]) / 2
else:
result = num_list[len(num_list) // 2]
return result
even_len = [8, 46, 9, 83, 20, 37, 3, 43, 19, 96]
odd_len = [49, 5, 67, 39, 61, 92, 71, 57, 58, 2, 89]
print("np.median() 사용: ", np.median(even_len))
print("median_list() 사용: ", median_list(even_len))
print("")
print("np.median() 사용: ", np.median(odd_len))
print("median_list() 사용: ", median_list(odd_len))
[문제4] 문자열의 위치를 바꾸는 함수를 작성하시오. 조건은 다음과 같습니다.
shiftStringLeft(string)
return 값 : 문자열에 속한 글자의 위치가 다음처럼 변경된 새로운 문자열 하나
- 입력 파라메타로 받은 문자열의 맨 왼쪽의 글자는 새로운 문자열에서 맨 오른쪽으로 이동함
- 입력 파라메타로 받은 문자열 중 맨 왼쪽의 글자가 아닌 경우는, 왼쪽으로 한칸씩 이동함
- 예를 들어, 입력파라메타로 ‘ABCDEF’를 받으면, return 값은 ‘BCDEFA’임
def shiftStringLeft(string):
new_string = ''
for i in range(1, len(string)):
new_string += string[i]
new_string += string[0]
return new_string
string = 'ABCDE'
shiftStringLeft(string)
[문제5] 리스트 내에서 최대값을 반환하는 함수를 작성하시오.
num_max(num_list)
단, max(), np.max() 등의 함수를 사용하는 것이 아니며, 제어문으로 작성해야 합니다.
[풀이 1]
def num_max(num_list):
max = num_list[0]
for num in num_list:
if max < num:
max = num
return max
num_list = [2,3,6,107,24,53,44,3,7,8,1]
num_max(num_list)
[풀이 2]
def num_max1(num_list):
max = num_list[0]
idx = 1
while idx <= (len(num_list)-1):
if max >= num_list[idx]:
max
else:
max = num_list[idx]
idx += 1
return max
num_list = [2,3,6,107,24,53,44,3,70,8,1]
num_max1(num_list)
[문제6] 리스트의 길이를 반환하는 함수를 작성하시오.
length(num_list)
단, len() 등의 함수를 사용하는 것이 아니며, 제어문으로 작성해야 합니다.
def length(num_list):
count = 0
for i in num_list:
count += 1
return count
num_list = [2,3,6,7,24,543,2342,3,7,8,1]
print("len() 사용: ", len(num_list))
print("length() 사용: ", length(num_list))
'BACS > 서브세션' 카테고리의 다른 글
[BACS] 서브세션 2주차 (0) | 2022.10.01 |
---|---|
[BACS] 서브세션 1주차 (0) | 2022.09.27 |