import random
num_list = list()
for num in range(30):
num_list.append(random.randint(1, 50))
print(f"탐색 대상({len(num_list)}개): {num_list}")
max_num = num_list[0]
max_cnt = 0
for num in num_list:
if num > max_num:
max_num = num
for num in num_list:
if max_num == num:
max_cnt += 1
print(f"최댓값 탐색결과: {max_num}({max_cnt}개)")
# 출력 예시
# 탐색 대상(30개): [50, 2, 33, 31, 50, 8, 38, 50, 4, 8, 37, 38, 1, 18, 27, 6, 25, 1, 27, 46, 13, 16, 31, 32, 26, 32, 2, 43, 4, 22]
# 최댓값 탐색결과: 50(3개)
import random
num_list = list()
for num in range(30):
num_list.append(random.randint(1, 50))
print(f"탐색 대상({len(num_list)}개): {num_list}")
min_num = num_list[0]
min_cnt = 0
for num in num_list:
if num < min_num:
min_num = num
for num in num_list:
if min_num == num:
min_cnt += 1
print(f"최솟값 탐색결과: {min_num}({min_cnt}개)")
# 출력 예시
# 탐색 대상(30개): [19, 11, 29, 35, 50, 45, 40, 8, 44, 41, 12, 24, 25, 20, 43, 50, 32, 24, 16, 26, 12, 31, 12, 39, 10, 38, 32, 21, 37, 41]
# 최솟값 탐색결과: 8(1개)
import random
outer_list = list()
for _list in range(30):
inner_list = list()
for num in range(6):
inner_list.append(random.randint(1, 45))
outer_list.append(inner_list)
print("="*50)
print(f"1번째 내부 리스트: {outer_list[0]}")
print(f"15번째 내부 리스트: {outer_list[14]}")
print(f"30번째 내부 리스트: {outer_list[29]}")
print("="*50)
cnt_dict = dict()
for _list in outer_list:
for num in set(_list):
if not cnt_dict.get(num):
cnt_dict[num] = 1
else:
cnt_dict[num] += 1
for num, cnt in cnt_dict.items():
print(f"{num} -> {cnt}회 포함")
print("="*50)
# 출력 예시
# ==================================================
# 1번째 내부 리스트: [25, 42, 5, 2, 9, 24]
# 15번째 내부 리스트: [23, 6, 16, 13, 29, 3]
# 30번째 내부 리스트: [37, 13, 34, 7, 18, 40]
# ==================================================
# 2 -> 4회 포함
# 5 -> 3회 포함
# 9 -> 3회 포함
# (중략)
# 40 -> 3회 포함
# 15 -> 1회 포함
# 28 -> 1회 포함
# ==================================================
| 수심(m) | 0 | 5 | 10 | 15 | 20 | 25 | 30 |
|---|---|---|---|---|---|---|---|
| 수온(도) | 24 | 22 | 20 | 16 | 13 | 10 | 6 |
input_depth = int(input("수심(m) 입력: "))
print("="*10)
print(f"수심(m): {input_depth}")
temp_dict = {
0: 24, 5: 22, 10: 20, 15: 16, 20: 13, 25: 10, 30: 6,
}
target_depth = 0
min_diff = 30
def get_temp(input_depth, min_diff):
for depth in temp_dict.keys():
diff = abs(depth - input_depth)
if diff < min_diff:
min_diff = diff
target_depth = depth
temp = temp_dict[target_depth]
return temp
print(f"온도(도): {get_temp(input_depth, min_diff)}")
# 출력 예시
# 수심(m) 입력: 2
# ============
# 수심(m): 2
# 온도(도): 24
| 월 | 1월 | 2월 | 3월 | 4월 | 5월 | 6월 | 7월 | 8월 | 9월 | 10월 | 11월 | 12월 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 매출(천원) | 12,000 | 13,000 | 12,500 | 11,000 | 10,500 | 98,000 | 91,000 | 91,500 | 10,500 | 11,500 | 12,000 | 12,500 |
sales = [12_000, 13_000, 12_500, 11_000, 10_500, 98_000,
91_000, 91_500, 10_500, 11_500, 12_000, 12_500]
def calc_diff(sales, idx=1):
if idx == len(sales):
return
else:
curr = sales[idx]
prev = sales[idx-1]
diff = curr-prev
if diff > 0:
print(f"{idx+1}월 전월대비 매출증감액: +{diff:,}원")
else:
print(f"{idx+1}월 전월대비 매출증감액: {diff:,}원")
calc_diff(sales, idx=idx+1) # 재귀 호출
calc_diff(sales)
# 출력 예시
# 2월 전월대비 매출증감액: +1,000원
# 3월 전월대비 매출증감액: -500원
# (중략)
# 11월 전월대비 매출증감액: +500원
# 12월 전월대비 매출증감액: +500원
num1 = int(input("정수 1 입력: "))
num2 = int(input("정수 2 입력: "))
if num1 > num2:
num1, num2 = num2, num1
def calc_sum(num1, num2, sum=0):
if num1 == num2-1:
return sum
else:
sum += (num1+1)
return calc_sum(num1+1, num2, sum)
print(f"{num1}과 {num2} 사이의 정수 합: {calc_sum(num1, num2)}")
# 출력 예시
# 정수 1 입력: 3
# 정수 2 입력: 10
# 3과 10 사이의 정수 합: 39
다음은 한 체조선수의 경기 점수이다. 최댓값과 최솟값을 제외한 나머지 점수에 대한 평균을 구하고, 점수에 대한 순위를 정하는 프로그램을 만드시오. 또한, 해당 평균값을 현재 순위표에 반영하여 새로운 순위표를 구하시오.
(참고) 경기 점수
| 회차 | 1회차 | 2회차 | 3회차 | 4회차 | 5회차 | 6회차 | 7회차 | 8회차 | 9회차 | 10회차 |
|---|---|---|---|---|---|---|---|---|---|---|
| 점수 | 6.7 | 5.9 | 8.1 | 7.9 | 6.7 | 7.3 | 7.2 | 8.2 | 6.2 | 5.8 |
(참고) 현재 순위표
| 순위 | 1위 | 2위 | 3위 | 4위 | 5위 |
|---|---|---|---|---|---|
| 점수 | 9.12 | 8.95 | 8.12 | 6.9 | 6.18 |
scores = [6.7, 5.9, 8.1, 7.9, 6.7, 7.3, 7.2, 8.2, 6.2, 5.8]
min_idx = 0
max_idx = 0
sum = 0
avg = 0
print("="*30)
# 평균 계산
for idx in range(len(scores)):
curr_score = scores[idx]
min_score = scores[min_idx]
if curr_score < min_score:
min_idx = idx
for idx in range(len(scores)):
curr_score = scores[idx]
max_score = scores[max_idx]
if curr_score > max_score:
max_idx = idx
scores.pop(min_idx)
scores.pop(max_idx)
for score in scores:
sum += score
avg = round(sum / len(scores),1)
print(f"> 최대-최소값 제외평균: {avg}점")
print("="*30)
# 변동 순위표 계산
ranks = [9.12, 8.95, 8.12, 6.9, 6.18]
tgt_idx = -1
for idx in range(len(ranks)):
if avg >= ranks[idx]:
tgt_idx = idx
break
if tgt_idx == -1:
print("> 순위표 재산정 불필요")
else:
print("> 순위표 재산정 필요")
ranks.insert(tgt_idx, avg)
ranks = ranks[:5]
for idx, rank in enumerate(ranks):
if idx == tgt_idx:
print(f"{idx+1}위: {rank}점 *")
else:
print(f"{idx+1}위: {rank}점")
print("="*30)
# 출력 예시
# ==============================
# > 최대-최소값 제외평균: 7.0점
# ==============================
# > 순위표 재산정 필요
# 1위: 9.12점
# 2위: 8.95점
# 3위: 8.12점
# 4위: 7.0점 *
# 5위: 6.9점
# ==============================
*이 글은 제로베이스 데이터 취업 스쿨의 강의 자료 일부를 발췌하여 작성되었습니다.