이거 8주차 계획인데
쉴때 집에서 4주차까지 다 들어버렸음 쿄ㅕㅋ쿄쿜쿜
그래도 옛날에 코테 준비할때 알고리즘 제법 많이 풀어둔 덕분에 조금...? 수월하게 풀 수이써따 (몸이 기억하는 것 같음…. 마치 머슬메모리?)
특히 피보나치 수열 알고리즘 문제 나올때
코테할때 디지게 많이 풀었던 문제라 빨리 풀었움
담주에는 빅분기 접수... ㄹㅊㄱㄹ
1. 이상한 수학 문제 I
실습 설명
while문과 if문을 활용하여, 100 이하의 자연수 중 8의 배수이지만 12의 배수는 아닌 것을 모두 출력하세요.
예를 들어서 16은 8의 배수이지만 12의 배수가 아니니까 조건에 부합합니다. 하지만 48은 8의 배수이면서 12의 배수이기도 해서 조건에 부합하지 않습니다.
실습 결과
8
16
32
40
56
64
80
88
# 여기에 코드를 작성하세요
i = 1
while i <= 100:
if i % 8 == 0 and i % 12 != 0 :
print(i)
i += 1
else:
i += 1
i = 1
while i <= 100:
if i % 8 == 0 and i % 12 != 0:
print(i)
i += 1
2. 이상한 수학 문제 II
실습 설명
10보다 작은 2 또는 3의 배수는 2, 3, 4, 6, 8, 9이며, 이들의 합은 32입니다.
while문과 if문을 활용하여, 1,000보다 작은 자연수 중 2 또는 3의 배수의 합을 출력하는 코드를 작성해 보세요.
실습 결과
333167
# 여기에 코드를 작성하세요
sum = 0
i = 1
while(i < 1000):
if i % 2 == 0 or i % 3 == 0:
sum += i
i += 1
print(sum)
i = 1
total = 0
while i < 1000:
if i % 2 == 0 or i % 3 == 0:
total += i
i += 1
print(total)
3. 약수 찾기
실습 설명
약수는 정수 n을 어떤 수로 나누었을 때 나누어떨어지게 하는 정수를 의미합니다. 만약 정수 i가 정수 n의 약수라면, n을 i로 나누었을 때 나머지가 0이 됩니다.
정수 120의 약수를 모두 출력하고, 총 몇개의 약수가 있는지 출력하는 코드를 작성해 보세요.
실습 결과
1
2
3
4
5
6
8
10
12
15
20
24
30
40
60
120
120의 약수는 총 16개입니다.
# 여기에 코드를 작성하세요
n = 120
count = 0
i = 1
while(i<=120):
if n % i == 0:
print(i)
count += 1
i += 1
print("{}의 약수는 총 {}개입니다.".format(n, count))
N = 120
i = 1
count = 0
while i <= N:
if N % i == 0:
print(i)
count += 1
i += 1
print("{}의 약수는 총 {}개입니다.".format(N, count))
4. 구구단 만들기
실습 설명
while문을 사용해서 구구단을 출력하는 코드를 작성해 봅시다.
참고로 이 문제는 '중첩 while문'이라는 개념을 사용해야 하는데요. 중첩 while문은 while문의 동작 부분 안에 또 다른 while문을 넣는 것을 이야기합니다. 앞에서 설명 드리지 않은 개념이지만, 조금 고민하다 보면 여러분이 직접 알아내실 수도 있습니다.
실습 결과
1 * 1 = 1
1 * 2 = 2
1 * 3 = 3
.
.
.
9 * 7 = 63
9 * 8 = 72
9 * 9 = 81
# 여기에 코드를 작성하세요
i = 1
j = 1
n = 10
while(i<n):
while(j<n):
print("{} * {} = {}".format(i,j,i*j))
j+=1
i+=1
j = 1
i = 1
while i <= 9:
j = 1
while j <= 9:
print("{} * {} = {}".format(i, j, i * j))
j += 1
i += 1
5. 택이의 우승 상금
실습 설명
1988년 쌍문동에 사는 택이는 바둑 대회 우승 상금으로 5,000만 원을 받았습니다.
이 돈을 어떻게 할지 고민하던 택이는, 이웃인 동일 아저씨와 미란 아주머니의 의견 중 하나를 선택하려 합니다.
- 동일 아저씨 의견
이자가 붙은 원금에 다시 이자가 붙는 연복리 예금에 넣기
- 미란 아주머니 의견
아파트 가치 상승을 고려하여 당시 매매가 5000만 원인 은마 아파트 사기
2016년 기준 은마아파트의 매매가는 11억 원인데요. 1988년 은행에 5,000만 원을 넣었을 경우 2016년에는 얼마가 있을지 계산하여,
- 은행에 저축해 둔 금액이 더 크면, 원 차이로 동일 아저씨 말씀이 맞습니다.를 출력하고
- 은마아파트의 가격이 더 크면, 원 차이로 미란 아주머니 말씀이 맞습니다.를 출력하는 코드를 작성해 보세요.
실습 결과
94193324원 차이로 동일 아저씨 말씀이 맞습니다.
# 여기에 코드를 작성하세요
i = 1
n = 2016 - 1988
money = 50000000
miran_money = 1100000000
while(i <= n):
money = money * (1+0.12)
i += 1
if money > miran_money:
print("{}원 차이로 동일 아저씨 말씀이 맞습니다.".format(int(money - miran_money)))
else:
print("{}원 차이로 미란 아주머니 말씀이 맞습니다.".format(int(miran_money - money)))
# 상수 정의
INTEREST_RATE = 0.12
APARTMENT_PRICE_2016 = 1100000000
# 변수 정의
year = 1988
bank_balance = 50000000
while year < 2016:
bank_balance = bank_balance * (1 + INTEREST_RATE)
year += 1
if bank_balance > APARTMENT_PRICE_2016:
print("{}원 차이로 동일 아저씨 말씀이 맞습니다.".format(int(bank_balance - APARTMENT_PRICE_2016)))
else:
print("{}원 차이로 미란 아주머니 말씀이 맞습니다.".format(int(APARTMENT_PRICE_2016 - bank_balance)))
6. 피보나치 수열
실습 설명
피보나치 수열(Fibonacci Sequence)이라고 들어 보셨나요?
1,1,2,3,5,8,13,21,34,55,...1,1,2,3,5,8,13,21,34,55,...
우선 피보나치 수열의 1번 항과 2번 항은 각각 1입니다. 3번 항부터는 바로 앞 두 항의 합으로 계산됩니다. 예를 들어서 3번 항은 1번 항(1)과 2번 항(1)을 더한 2이며, 4번 항은 2번 항(1)과 3번 항(2)을 더한 3입니다.
피보나치 수열의 첫 50개 항을 차례대로 출력하는 코드를 작성해 보세요.
실습 결과
1
1
2
3
5
8
13
21
.
.
.
4807526976
7778742049
12586269025
진짜……… 코테 준비할 때 지겹도록 푼 문제…….
# 여기에 코드를 작성하세요
fibo = [1,1,2]
for i in range(50):
fibo.append(fibo[i+1]+fibo[i+2])
print(fibo[i])
previous = 0
current = 1
i = 1
while i <= 50:
print(current)
temp = previous # previous를 임시 보관소 temp에 저장
previous = current
current = current + temp # temp에는 기존 previous 값이 저장돼 있음
i += 1
'DI(Digital Innovation) > HYUNDAI NGV in Data Analysis' 카테고리의 다른 글
주야경독(feat. HDAT 2) (2) | 2024.11.05 |
---|---|
주경야독(feat. HDAT 1) (2) | 2024.11.05 |
[NGV & KAP 데이터 분석 in 모빌리티] 4주차 (0) | 2024.08.07 |
[NGV & KAP 데이터 분석 in 모빌리티] 3주차 (0) | 2024.08.07 |
[NGV & KAP 데이터 분석 in 모빌리티] 1주차 (1) | 2024.07.22 |