1장 알고리즘 기초
01-1 알고리즘이란?
세 정수의 최댓값 구하기
Q. 세 정수의 최댓값 구하기
def max(a, b, c):
if a >= b and a >= c:
return a
elif b > a and b >= c:
return b
else:
return c
print(max(1, 2, 3))
Q. 세 정수의 중앙값 구하기
def median(a, b, c):
if b <= a <= c or c < a < b:
return a
elif a < b < c or c < b < a:
return b
else:
return c
print(median(3, 5, 4))
조건문과 분기
순서도 기호 살펴보기
01-2 반복하는 알고리즘
1부터 n까지 정수의 합 구하기
Q. 1부터 n까지 정수의 합 구하기 - while
def sum(n):
sum = 0
while n > 0:
sum += n
n -= 1
return sum
print(sum(5))
Q. 1부터 n까지 정수의 합 구하기 - for
def sum(n):
sum = 0
for i in range(1, n+1):
sum += i
return sum
print(sum(3))
연속하는 정수의 합을 구하기 위해 값 정렬하기
반복 과정에서 조건 판단하기 1
Q. a부터 b까지 정수의 합 구하기
def sum(a, b):
s= 0
if a > b:
return sum(b, a)
for i in range(a, b+1):
s += i
return s
print(sum(5, 4))
반복 과정에서 조건 판단하기 2
Q. +와 - 반복해서 출력하기
def plus(n):
if n % 2 == 0:
return '+-' * (n//2)
else:
return '+-' * (n//2) + '+'
print(plus(5))
반복 과정에서 조건 판단하기 3
Q. *를 n개 출력하되 w개마다 줄바꿈하기
def star(n, w):
for i in range(n//w+1):
print('*'*w)
print('*'*(n%w))
star(5, 2)
양수만 입력받기
Q. 1부터 n까지 정수의 합 구하되, n값은 양수만 입력받음
def sum(n):
if n < 0:
print('자연수만 입력할 수 있습니다.')
return n * (n+1) // 2
print(sum(5))
print(sum(-1))
직사각형 넓이로 변의 길이 구하기
Q. 가로 세로 길이가 정수이고 넓이가 area인 직사각형에서 변의 길이 나열하기
import math
def area(n):
for i in range(1, int(math.sqrt(n))):
if n % i == 0:
print (i, n//i)
area(10)
Q. 10과 99 사이의 난수 n개 생성하기 - 13이 나오면 중단
from random import *
def random(n):
for i in range(n):
n = randint(10, 99)
print(n)
if n == 13:
break
random(10)
반복문 건너뛰기와 여러 범위 스캔하기
Q. 1부터 12까지 8을 건너뛰고 출력하기
def no_eight(n):
for i in range(1, n+1):
if i == 8:
continue
print(i)
no_eight(10)
다중 루프 알아보기
Q. 구구단 곱셈표 출력하기
def ggdan():
for i in range(1, 10):
for j in range(1, 10):
print(i*j, end = ' ')
print()
ggdan()
Q. 직각이등변삼각형으로 출력하기
def triangle():
for i in range(1, 10):
print('*' * i)
triangle()
'Computer Science > 자료구조' 카테고리의 다른 글
[4.28] 검색 알고리즘 (0) | 2021.04.28 |
---|---|
[4.27] 2장(기본 자료구조와 배열) 복습하기 (1) | 2021.04.27 |
[4.24] 2장 마무리 (1) | 2021.04.24 |
[4.23] 배열이란? (1) | 2021.04.23 |
[4.21] 02-1 배열하는 알고리즘 (2) (1) | 2021.04.21 |