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

+ Recent posts