<2주차_5일> 자료구조 문풀(1)

Nary Kim·2023년 5월 14일
0
post-thumbnail

리스트, 튜플, 딕셔너리에 관한 문제에 대한 실습을 하였다.

39번 리스트(01)
1부터 사용자가 입력한 숫자까지의 약수와 소수를 리스트에 각각 저장하고, 이것을 출력하는 프로그램을 만들어보자.

inputNum = int(input('1보다 큰 정수 입력: '))
listA = []
temp = [] #약수가 아닌 수의 임시 모임
listB = []
listA.append(1)
#약수를 listA에 저장한다.
for i in range(2,inputNum+1):
    if inputNum % i == 0:
        listA.append(i)
    else:
        temp.append(i) #약수가 아니면 저장.
#약수가 아닌 수 중에 진짜 소수를 찾아서 저장한다.
for i in temp:
    flag = 0
    for j in range(2, i):
        if i % j ==0:
            flag = 1
            break
    if flag == 0:
        listB.append(i)
print(listA)
print(listB)

41번 리스트(03)
나이별 입장료가 다른 공원의 1일 전체 입장 요금을 구하는 프로그램을 만들어보자. (1일 총 입장객 : 100명)

import random
ages = [7, 13, 19, 64, 100] #나이 단계를 저장
fee = [0, 200, 300, 500, 0] #나이 겸 요금을 저장
cnt = []
visit = []
for i in range(0,100):
    visit.append(random.randint(0,100))
#우선 나이에 대해 오름차순으로 정렬한다.
visit.sort()
num = 0
temp = 0
for i, j in enumerate(visit):
    if j > ages[num]:
        cnt.append(temp)
        temp = 1
        num += 1
    else:
        temp += 1
cnt.append(temp)
people = ['영유아', '어린이','청소년','성 인','어르신']
total = 0
print('-'*40)
for i in range(0,5):
    pay = cnt[i] * fee[i]
    total += pay
    print(f'{people[i]}\t : {cnt[i]}명\t  : ',end='')
    print('{}원 '.format(format(pay,',')))
print('-'*40)
print('1일 요금 총합계 : {}원'.format(format(total, ',')))
print('-'*40)

47번 튜플(04)
다음 튜플의 과일개수에 대해서 오름차순 으로 정렬해보자.

fruits = ({'수박':8}, {'포도':13}, {'참외':12}, {'사과':17}, {'자두':19}, {'자몽':15})
num = 0
fruits = list(fruits)
num = len(fruits)-1
for i in range(0,num):
    for j in range(0,num-i):
        if list(fruits[j].values())[0] > list(fruits[j+1].values())[0]:
            tt = fruits[j]
            fruits[j] = fruits[j+1]
            fruits[j+1] = tt
print(fruits)

52번 딕셔너리(04)
딕셔너리를 이용해서 5명의 회원을 가입 받고 전체 회원 정보를 출력하는 프로그램을 만들어보자.

members = {}
#회원정보 입력
n = 0
while n<5:
    mail = input('메일 입력 :')
    pw = input('비번 입력 :')
    if mail in members:
        print('이미 사용중인 계정입니다.')
        continue
    else:
        members[mail] = pw
        n += 1
#회원정보 출력
for k in members.keys():
    print(f'{k} : {members[k]}')
#회원정보 삭제
flag = 0
while flag==0:
    dmail = input('삭제할 계쩡 입력 : ')
    if dmail in members:
        dpw = input('비번 입력 : ')
        if members[dmail] == dpw:
            print(f'{dmail}님 삭제 완료!')
            print(f'{dmail} : {dpw}')
            del members[dmail]
            flag = 1
        else:
            print('비번 확인 요망!')
    else:
        print('계정 확인 요망!')
profile
나는 무엇이 될것인가!!

0개의 댓글