Python - 자료구조 문제

sdubee10·2021년 10월 17일
0

Python

목록 보기
7/7

ListQ1. 1부터 사용자가 입력한 숫자까지의 약수와 소수를 리스트에 각각 저장하고 출력!

n = int(input("1보다 큰 정수 입력: "))

divisor = []
prime = []

for i in range(1, n + 1):
    if n == 1:
        divisor.append(i)
    else:
        if n % i == 0:
            divisor.append(i)

for i in range(2, n + 1):
    flag = True
    for j in range(2, i):
        if i % j == 0:
            flag = False
            break
    if flag:
        prime.append(i)

print(prime)
print(divisor)

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

import random

randomlist = random.sample(range(1, 101), 10)
evens = []
odds = []

for n in randomlist:
    if n % 2 == 0:
        evens.append(n)
    else:
        odds.append(n)

print(f'짝수 : {evens} 크기 : {len(evens)}')
print(f'홀수 : {odds} 크기 : {len(odds)}')

ListQ3.

visitors=[]
for n in range(100):
    visitors.append(random.randint(1, 100))

total = 0

for n in visitors:
    if n >= 0 and n <= 7:
        continue
    elif n >= 8 and n <= 13:
        total += 200
    elif n >= 14 and n <= 19:
        total += 300
    elif n >= 20 and n <= 64:
        total += 500

print(visitors)
print(total)

ListQ4. 4개의 숫자 중 서로 다른 숫자2개를 선택해서 만들수 있는 모든 경우의 수를 출력!

# permutation 개념
import random
numbers = []

for n in range(4):
    numbers.append(random.randint(1, 4))

result = []
for first in numbers:
    for second in numbers:
        if first == second:
            continue
        else:
            result.append([first, second])

print(numbers)
print(result)

TupleQ1. 다음 튜플의 과일 개수에 대해서 오름차순 및 내림차순으로 정렬해보자.


fruits = ({'수박': 8}, {'포도': 13}, {'참외': 12}, {'사과': 17}, {'자두': 19}, {'자몽': 15})

fruits = list(fruits)

cIdx = 0
nIdx = 1
eIdx = len(fruits) - 1

flag = True
while flag:
    curDic = fruits[cIdx]
    nextDic = fruits[nIdx]

    curDicCnt = list(curDic.values())[0]
    nextDicCnt = list(nextDic.values())[0]

    if nextDicCnt < curDicCnt:
        fruits.insert(cIdx, fruits.pop(nIdx))
        nIdx = cIdx + 1
        continue

    nIdx += 1
    if nIdx > eIdx:
        cIdx += 1
        nIdx = cIdx + 1

        if cIdx == 5:
            flag = False

print(fruits)
print(fruits[::-1])

DictionaryQ1. 과목별 점수를 딕셔너리에 저장하고 출력하는 프로그램을 만들어보자.

subject = ['국어', '영어', '수학', '과학', '국사']
scores={}

for s in subject:
    score = input(s + ' 점수 입력: ')
    scores[s] = score

print(scores)

DictionaryQ2.

#삼각형부터 십각형까지의 내각의 합과 내각을 딕셔너리에 저장하는 프로그램을 만들어보자
dic = {}

for n in range(3, 11):
    hap = 180 * (n - 2)
    ang = int(hap/n)
    dic[n] = [hap, ang]

print(dic)

#1부터 10까지 각각의 정수에 대한 약수를 저장하는 딕셔너리를 만들고 출력하는 프로그램을 만들어보자

dic = {}
for n1 in range(2, 11):
    tempList = []
    for n2 in range(1, n1+1):
        if n1 % n2== 0:
            tempList.append(n2)
    dic[n1] = tempList

print(dict)

0개의 댓글