파이썬 자료구조 알고리즘 공부 2주차에 대한 글을 써보려고 한다.
이번주의 주제는 반복 알고리즘(for, while)이였다.
어디선가 한 번은 다 배운 내용들이지만 가물가물 하였고,
실습을 하나씩 따라 적어보고 책과는 또다른 방법으로 코딩도 해보니 재미있었다.
#5일차
#합 'while' 활용
print('1부터 n까지 합')
n = int(input('값을 입력하세요 :'))
sum = 0
i = 1
while i<=n:
sum +=i
i+=1
print(f'1 부터 {n}까지의 합은 {sum}')
#팩토리얼 'while' 활용
print('n 팩토리얼')
n = int(input('값을 입력하세요 :'))
fac = 1
i=1
while i<=n :
fac *= i
i+=1
print(f'{n} 팩토리얼은 {fac}입니다.')
#합 'for' 활용
print('1부터 n까지의 합')
n = int(input('값을 입력하세요 :'))
sum = 0
for i in range(1, n+1):
sum = sum+i
print(f'1부터 {n}까지의 합은 {sum}입니다.')
#팩토리얼 'for' 활용
print('n 팩토리얼')
n = int(input('값을입력하세요 :'))
fac = 1
for i in range(1, n+1):
fac = fac * i
print(f'{n} 팩토리얼은 {fac}입니다.')
#6일차
#1부터 정수합
n = int(input('값을 입력하세요 :'))
sum = n*(n+1)//2
print(f'1부터 {n}까지 합은 {sum}입니다')
#특정구간 정수합
print('a 부터 b까지 정수합')
a= int(input('a값을 입력하세요 :'))
b= int(input('b값을 입력하세요 :'))
if a>b :
a,b = b,a
sum = 0
for i in range(a, b+1):
sum = sum+i
print(f'{a}부터 {b}까지 합은 {sum}입니다.')
#특정구간 정수합 'if' 활용
print('a 부터 b까지 정수합')
a= int(input('a값을 입력하세요 :'))
b= int(input('b값을 입력하세요 :'))
if a>b:
a,b = b,a
sum = 0
for i in range(a,b+1):
if i==b :
print(f'{i}=', end='')
else :
print(f'{i}+', end ='' )
sum = sum+i
print(sum)
# +- 번갈아 출력
print('+와-를 번갈아 출력합니다')
n = int(input('몇 개를 출력할까요?'))
for i in range(n):
if i%2 :
print('-', end='')
else :
print('+', end='')
#7일차
# +- 번갈아 출력 최적화
print('+와 -를 번갈아 출력')
n=int(input('몇 개를 출력할까요? :'))
for i in range(n//2):
print('+-', end='')
if n%2 :
print('+')
print()
# * 출력 및 줄바꿈1
print('*을 출력합니다.')
n = int(input('몇 개를 출력할까요?'))
w = int(input('몇 개마다 줄바꿈할까요?'))
for i in range(n):
print('*', end='')
if i % w == w-1:
print()
# * 출력 및 줄바꿈2
print('*을 출력합니다.')
n = int(input('몇 개를 출력할까요?'))
w = int(input('몇 개마다 줄바꿈할까요?'))
for i in range(n//w):
print('*' * w)
rest = n % w
if rest:
print('*' * rest)
#조건 다시 묻기
print('1부터 n까지 정수합')
while True:
n = int(input('n을 입력하세요:'))
if n>0:
break
sum=0
for i in range(1,n+1):
sum += i
print(f'1부터 {n}까지 정수 합은 {sum}')
#직사각형 넓이 구하기
area = int(input('직사각형 넓이를 입력하세요 :'))
for i in range(1,area+1):
if i * i > area : break
if area % i : continue
print(f'{i}*{area//i}')
#8일차
#난수생성
import random
n=int(input('난수 개수를 입력하세요:'))
for i in range(n):
r = random.randint(10,99)
print(r, end=' ')
if r == 13:
print('\n 프로그램을 중단합니다')
break
else:
print('\n 난수 생성을 종료합니다')
#양수 입력받기
print('두 자리 양수를 입력하세요:')
while True:
n = int(input('값을 입력하세요:'))
if n <10 or n>100:
print('두자리 양수가 아닙니다')
else : break
print(f'입력받은 양수는 {n}입니다')
#구구단
print('구구단')
for i in range(1,10):
for j in range(1,10):
print(f'{i*j:3}', end='')
print()
# *로 직각삼각형 만들기1
print('왼아래가 직각인 삼각형')
n = int(input('아래 변의 길이를 입력하세요:'))
for i in range(1,n+1):
print('*' * i)
# *로 직각삼각형 만들기2
print('오른아래가 직각인 삼각형')
n = int(input('아래 변의 길이를 입력하세요:'))
for i in range(1,n+1):
print(' ' * (n-i), '*' * i )
# *로 직각삼각형 만들기3
print('오른아래가 직각인 삼각형')
n = int(input('아래 변의 길이를 입력하세요:'))
for i in range(n):
for j in range(n-i-1):
print(' ' , end='')
for k in range(i +1):
print('*', end='')
print()
# 파이썬 식별번호 개념
print('식별번호를 출력합니다.')
for i in range(1,10):
print(f'{i}의 식별번호는 {id(i)}입니다')
2주차 느낌 :
계획한 진도를 맞출 수 있어 좋았다.
하지만 생각보다 퇴근 후에 공부를 하는 것이 쉽지않다라는 것을 또 한번 느꼈다.
이제는 웜업을 끝내고 본 게임을 들어갈 것 같다
다음주도 화이팅이다.
'컴퓨터 공부 > Python' 카테고리의 다른 글
자료구조 알고리즘 공부 4주차 (0) | 2022.04.10 |
---|---|
자료구조 알고리즘 공부 3주차 (0) | 2022.04.03 |
자료구조 알고리즘 공부 1주차 (0) | 2022.03.20 |