일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- Folium
- pandas filter
- 순열
- tree.fit
- SQL
- INSERT
- 등차수열
- plt
- 파이썬
- DataFrame
- 스터디노트
- 통계학
- 재귀함수
- 기계학습
- barh
- MacOS
- 리스트
- 문제풀이
- 자료구조
- 등비수열
- maplotlib
- pandas 메소드
- Slicing
- 조합
- matplotlib
- 머신러닝
- Machine Learning
- python
- numpy
- pandas
Archives
- Today
- Total
코딩하는 타코야끼
[스터디 노트] Week3_5일차 [unit39 ~ 53] - 자료구조 문제풀이 본문
728x90
반응형
1. 자료문풀_1 [unit 39 ~ 43]
📍 [연습문제] 리스트(01)
# 1부터 사용자가 입력한 숫자까지의 약수와 소수를 리스트에 각각 저장하고, 이것을 출력하는 프로그램을 만들어보자.
num = int(input("1보다 큰 정수 입력: "))
list_a = []
list_b = []
for i in range(1, (num + 1)):
if num == 1:
list_a.append(i)
else:
if num % i == 0:
list_a.append(i)
for i in range(2, (num + 1)):
flag = True
for j in range(2, int(i**0.5) + 1):
if i % j == 0:
flag = False
break
if flag:
list_b.append(i)
print(f"50의 약수: {list_a}")
print(f"50의 소수: {list_b}")
>>>
1보다 큰 정수 입력: 50
50의 약수: [1, 2, 5, 10, 25, 50]
50의 소수: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47]
📍 [연습문제] 리스트(02)
# 1부터 100사이에 난수 10개를 생성한 후 짝수와 홀수를 구분해서 리스트에
# 저장하고 각각의 개수를 출력하는 프로그램을 만들어보자.
import random
num_r = random.sample(range(1, 100), 10)
list_odd = []
list_even = []
for num in num_r:
if num % 2 == 0:
list_even.append(num)
else:
list_odd.append(num)
print(f"홀수인 난수: {list_odd}")
print(f"홀수인 난수 갯수: {len(list_odd)}")
print("="*20)
print(f"짝수인 난수: {list_even}")
print(f"짝수인 난수 갯수: {len(list_even)}")
>>>
홀수인 난수: [41, 39, 71, 11, 21, 1]
홀수인 난수 갯수: 6
====================
짝수인 난수: [34, 96, 98, 82]
짝수인 난수 갯수: 4
📍 [연습문제] 리스트(04)
# 친구 이름 다섯 명을 리스트에 저장하고 오름차순과 내림차순으로 정렬해보자.
name_list = []
for _ in range(5):
name = str(input("친구 이름 입력: "))
name_list.append(name)
print(f"친구들: {name_list}")
name_list.sort()
print(f"오름차순: {name_list}")
name_list.sort(reverse = True)
print(f"내림차순: {name_list}")
>>>
친구 이름 입력: 박찬호
친구 이름 입력: 홍길동
친구 이름 입력: 유재석
친구 이름 입력: 강호동
친구 이름 입력: 박지성
친구들: ['박찬호', '홍길동', '유재석', '강호동', '박지성']
오름차순: ['강호동', '박지성', '박찬호', '유재석', '홍길동']
내림차순: ['홍길동', '유재석', '박찬호', '박지성', '강호동']
📍 [연습문제] 리스트(05)
# 4개의 숫자 중 서로 다른 숫자 2개를 선택해서 만들 수 있는 모든 경우의 수를 출력하는 프로그램을 만들어보자.
number = [4, 6, 7, 9]
result = []
for i in number:
for j in number:
if i == j:
continue
result.append([i, j])
print(f"result: {result}")
>>>
result: [[4, 6], [4, 7], [4, 9], [6, 4], [6, 7], [6, 9], [7, 4], [7, 6], [7, 9], [9, 4], [9, 6], [9, 7]]
# 4개의 숫자 중 서로 다른 숫자 3개를 선택해서 만들 수 있는 모든 경우의 수를 출력하는 프로그램을 만들어보자.
number = [4, 6, 7, 9]
result = []
for i in number:
for j in number:
for n in number:
if i != j and i != n and j != n:
result.append([i, j, n])
print(f"result: {result}")
>>>
result: [[4, 6, 7], [4, 6, 9], [4, 7, 6], [4, 7, 9],
[4, 9, 6], [4, 9, 7], [6, 4, 7], [6, 4, 9], [6, 7, 4],
[6, 7, 9], [6, 9, 4], [6, 9, 7], [7, 4, 6], [7, 4, 9],
[7, 6, 4], [7, 6, 9], [7, 9, 4], [7, 9, 6], [9, 4, 6],
[9, 4, 7], [9, 6, 4], [9, 6, 7], [9, 7, 4], [9, 7, 6]]
2. 자료문풀_2 ~ 3 [unit 44 ~ 53]
📍 [연습문제] 튜플(02)
# 다음 2개의 튜플에 대해서 합집합과 교집합을 출력해보자.
tuple1 = (1, 3, 2, 6, 12, 5, 7, 8)
tuple2 = (0,5, 2, 9, 8, 6, 17, 3)
hap = list(tuple1)
gyo = list()
for i in tuple2:
if i not in hap:
hap.append(i)
else:
gyo.append(i)
print(f"합집합: {hap}")
print(f"교집합: {gyo}")
>>>
합집합: [1, 3, 2, 6, 12, 5, 7, 8, 0, 9, 17]
교집합: [5, 2, 8, 6, 3]
ㅊ📍 [연습문제] 튜플(03)
# 다음 튜플을 요구 사항에 맞춰 아이템을 슬라이스하자
numbers = (8.7, 9.0, 9.1, 9.2, 8.6, 0.3, 7.9, 8.1, 8.3)
print(f"index 0 부터 3까지: {numbers[:4]}")
print(f"index 2 부터 4까지: {numbers[2:5]}")
print(f"index 3 부터 끝까지: {numbers[3:]}")
print(f"index 2 부터 -2까지: {numbers[2:-2]}")
print(f"index 0 부터 끝까지 3단계: {numbers[::3]}")
>>>
index 0 부터 3까지: (8.7, 9.0, 9.1, 9.2)
index 2 부터 4까지: (9.1, 9.2, 8.6)
index 3 부터 끝까지: (9.2, 8.6, 0.3, 7.9, 8.1, 8.3)
index 2 부터 -2까지: (9.1, 9.2, 8.6, 0.3, 7.9)
index 0 부터 끝까지 3단계: (8.7, 9.2, 7.9)
# 시험 점수를 입력한 후 튜플에 저장하고 과목별 학점을 출력해보자.
kor_score = int(input("국어 점수 입력: "))
eng_score = int(input("영어 점수 입력: "))
mat_score = int(input("수학 점수 입력: "))
sci_score = int(input("과학 점수 입력: "))
his_score = int(input("국사 점수 입력: "))
scores = (
{"kor": kor_score},
{"eng": eng_score},
{"mat": mat_score},
{"sci": sci_score},
{"his": his_score},
)
print(f"scores: {scores}")
for item in scores:
for key in item.keys():
if item[key] >= 90:
item[key] = "A"
elif item[key] < 90 and item[key] >= 80:
item[key] = "B"
elif item[key] < 80 and item[key] >= 70:
item[key] = "C"
elif item[key] < 70 and item[key] >= 60:
item[key] = "D"
else:
item[key] = "F"
print(f"scores: {scores}")
>>>
국어 점수 입력: 92
영어 점수 입력: 86
수학 점수 입력: 77
과학 점수 입력: 68
국사 점수 입력: 54
scores: ({'kor': 92}, {'eng': 86}, {'mat': 77}, {'sci': 68}, {'his': 54})
scores: ({'kor': 'A'}, {'eng': 'B'}, {'mat': 'C'}, {'sci': 'D'}, {'his': 'F'})
📍 [연습문제] 튜플(04)
# 다음 튜플의 과일 개수에 대해서 오름차순 및 내림차순으로 정렬해보자.
fruits = (
{"수박":8},
{"포도":13},
{"참외":12},
{"사과":17},
{"자두":19},
{"자몽":15},
)
# 먼저 딕셔너리들의 튜플을 단일 딕셔너리로 변환
fruits_dict = {list(fruit.keys())[0]: list(fruit.values())[0] for fruit in fruits}
# 과일 개수를 오름차순으로 정렬
sorted_fruits_asc = sorted(fruits_dict.items(), key=lambda x: x[1])
print(sorted_fruits_asc)
# 과일 개수를 내림차순으로 정렬
sorted_fruits_desc = sorted(fruits_dict.items(), key=lambda x: x[1], reverse=True)
print(sorted_fruits_desc)
>>>
[('수박', 8), ('참외', 12), ('포도', 13), ('자몽', 15), ('사과', 17), ('자두', 19)]
[('자두', 19), ('사과', 17), ('자몽', 15), ('포도', 13), ('참외', 12), ('수박', 8)]
📍 [연습문제] 딕셔너리(01)
# 과목별 점수를 딕셔너리에 저장하고 출력하는 프로그램을 만들어보자.
subject = ["국어", "영어", "수학", "과학", "국사"]
scores = {}
for i in subject:
score = input(i + "점수 입력: ")
scores[i] = score
print(scores)
>>>
국어점수 입력: 88
영어점수 입력: 96
수학점수 입력: 89
과학점수 입력: 79
국사점수 입력: 83
{'국어': '88', '영어': '96', '수학': '89', '과학': '79', '국사': '83'}
📍 [연습문제] 딕셔너리(02)
# 삼각형부터 십각형까지의 내각의 합과 내각을 딕셔너리에 저장하는 프로그램을 만들어보자.
dic = {}
for i in range(3,11):
hap = 180 * (i-2)
ang = int(hap / i)
dic[i] = [hap, ang]
print(dic)
>>>
{3: [180, 60], 4: [360, 90], 5: [540, 108], 6: [720, 120], 7: [900, 128], 8: [1080, 135], 9: [1260, 140], 10: [1440, 144]}
📍 [연습문제] 딕셔너리(03)
about_python = "파이썬은 1991년 프로그래머인 귀도 반 로섬이 발표한 고급 프로그래밍 언어이다."
l = about_python.split()
dic = {}
for idx, value in enumerate(l):
dic[idx] = value
print(dic)
>>>
{0: '파이썬은', 1: '1991년', 2: '프로그래머인', 3: '귀도', 4: '반', 5: '로섬이', 6: '발표한', 7: '고급', 8: '프로그래밍', 9: '언어이다.'}
📍 [연습문제] 딕셔너리(05)
students = {
"S21-0001": {"이름": "최성훈",
"성구분": "M",
"전공": "디자인",
"연락처": "010-1234-5678",
"메일": "hun@gmail.com",
"취미": ["농구", "음악"]},
"S21-0002": {"이름": "탁영우",
"성구분": "M",
"전공": "바리스타",
"연락처": "010-5678-9012",
"메일": "yeong@gmail.com",
"취미": "축구"},
"S21-0003": {"이름": "황진영",
"성구분": "W",
"전공": "음악",
"연락처": "010-9012-3456",
"메일": "jin@gmail.com",
"취미": ["수영", "코딩"]}
}
for k1 in students.keys():
print(f"학생번호: {k1}")
student = students[k1]
for k2 in student.keys():
print(f"{k2}: {student[k2]}")
print("="*40)
student_no = input("조회 대상 학생 번호 입력: ")
print(f"{student_no}: {students[student_no]}")
>>>
학생번호: S21-0001
이름: 최성훈
성구분: M
전공: 디자인
연락처: 010-1234-5678
메일: hun@gmail.com
취미: ['농구', '음악']
========================================
학생번호: S21-0002
이름: 탁영우
성구분: M
전공: 바리스타
연락처: 010-5678-9012
메일: yeong@gmail.com
취미: 축구
========================================
학생번호: S21-0003
이름: 황진영
성구분: W
전공: 음악
연락처: 010-9012-3456
메일: jin@gmail.com
취미: ['수영', '코딩']
========================================
조회 대상 학생 번호 입력: S21-0001
S21-0001: {'이름': '최성훈', '성구분': 'M', '전공': '디자인', '연락처': '010-1234-5678', '메일': 'hun@gmail.com', '취미': ['농구', '음악']}
반응형
'zero-base 데이터 취업 스쿨 > 스터디 노트' 카테고리의 다른 글
[스터디 노트] Week4_2일차 [unit19 ~ 34] - 알고리즘 (0) | 2023.07.31 |
---|---|
[스터디 노트] Week4_1일차 [unit1 ~ 18] - 알고리즘 (0) | 2023.07.25 |
[스터디 노트] Week3_4일차 [unit23 ~ 38] - 자료구조 (0) | 2023.07.23 |
[스터디 노트] Week3_3일차 [unit1 ~ 22] - 자료구조 (0) | 2023.07.23 |
[스터디 노트] Week3_2일차 [unit31 ~ 45] - 기초수학 문제풀이 (0) | 2023.07.19 |