Computer Science/자료구조

[4.26] 1장(알고리즘 기초) 복습

토마토. 2021. 4. 26. 16:41

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