[Zerobase][Python Mid] List 문제풀이

솔비·2023년 12월 6일

💻 Python. w/zerobase

목록 보기
18/33
post-thumbnail

⬇️ list 이론
https://velog.io/@sxlbl/Zerobase자료구조-자료구조-이론과-List


자료구조 List 문제풀이

📖 1번문제

1부터 100사이에 난수 10개를 생성한 후 짝수와 홀수를 구분해서 리스트에 저장하고
각각의 개수를 출력하는 프로그램

import random

even = []
odd = []

sample = random.sample(range(1,101),10)

for i in sample :
    if i % 2 == 0 :
        even.append(i)
    elif i % 2 != 0 :
        odd.append(i)


print(f'생성된 난수 : {sample}')
print(f'홀수 : {odd} 갯수 : {len(odd)}')
print(f'짝수 : {even} 갯수 : {len(even)}')

📁 풀이기록

2로 나눈 나머지가 0이면 짝수 니면 홀수로 구분하고
각각의 리스트에 append하는비교적 간단한 문제풀이.

📖 2번문제

import random

list = ['영유아','어린이','청소년','성인','어르신']
visitor = []
money_1 = 0
money_2 = 200
money_3 = 300
money_4 = 500
money_5 = 0

money = 0
sum_pay = 0

for i in range(100) :
    visitor.append(random.choice(list))

print('-'*50)
for i in list :
    cnt = visitor.count(i)

    if i == '영유아' :
        money = money_1
    elif i == '어린이' :
        money = money_2
    elif i == '청소년' :
        money = money_3
    elif i == '성인' :
        money = money_4
    elif i == '어르신' :
        money = money_5

    pay = cnt * money
    sum_pay += pay

    print(f'{i}: {cnt}명: {pay}원')

print('-'*50)
print(f'1일 요금 총 합계 : {format(sum_pay,',')}원')
print('-'*50)

📁 풀이기록

딕셔너리 구조로 풀면 더 코드가 간결해졌겠지만,
복습 차 리스트로 만들어보았다.
그리 어려운 문제는 아니다.

📖 3번문제

친구 이름 다섯명을 리스트에 저장하고 오름차순과 내림차순으로 정렬해보자

friends = []

for i in range(5) :
    fn = input('친구이름 입력 : ')
    friends.append(fn)

print(f'친구들 : {friends}')
friends.sort()
print(f'오름차순 : {friends}')
friends.sort(reverse=True)
print(f'내림차순 : {friends}')

다음리스트에서 중복 아이템을 제거하는 프로그램을 만들어보자

numbers = [2,22,7,8,9,2,7,3,5,2,7,1,3]
print(f'numbers : {numbers}')

for i in numbers :
    if numbers.count(i) >= 2 :
        numbers.remove(i)

print(f'numbers : {numbers}')

📁 풀이기록

sort,count,remove 메소드를 활용하는 기본 문제풀이

📖 4번문제

4개의 숫자 중 서로다른 숫자 2개를 선택해서 만들 수 있는 모든 경우의 수를 출력하는 프로그램

numbers = [4,6,7,9]
result = []

for n1 in numbers :
    for n2 in numbers :
        if n1 != n2 :
            result.append([n1,n2])

print(f'result : {result}, length : {len(result)}')

📁 풀이기록

중첩 반복문으로 numbers의 아이템을 2개 꺼내오고
서로다른 숫자일 경우 해당 조합으로
result 리스트에 append 시켜서 풀었다.


Zero Base 데이터분석 스쿨
Daily Study Note
profile
Study Log

0개의 댓글