[알고리즘] 알고리즘 기초 1

SeHoony·2022년 3월 17일
1

알고리즘

목록 보기
4/11
post-thumbnail

알고리즘 기초 입문을 위해 공부한 DO IT! 자료구조와 함께 배우는 알고리즘 입문 : 파이썬편을 통해 새로 알게 된 내용을 정리

1. 부동소수점 방식

컴퓨터에서 실수를 근삿값으로 표현하기 위한 방식이다.

https://velog.io/@gsh723/%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-%EB%B6%80%EB%8F%99-%EC%86%8C%EC%88%98%EC%A0%90-%EB%B0%A9%EC%8B%9D

2. '올바른 알고리즘' 이란?

: 어떠한 경우에도 실행결과가 똑같이 나오는 것

3. 알고리즘

3-1. 세 정수의 중앙값 구하기

[1번 방식] a, b의 순서를 정하고 (a, b) 두 수를 기준으로 c가 어디에 위치(앞, 뒤, 사이)할 지 정한다.

def med(a, b, c):
  if a>=b : 
    if b >=c : return b
    elif c>=a : return a
    else : return c
  elif c>=b : 
    return b
  elif a>=c :
    return a
  else :
    return c
    
[2번 방식] 1번 방식보다 코드 길이는 짧으나, if와 elif에서 비교하는 조건이 같은 것들이 있어 '비효율적'이다.

def med2(a,b,c):
  if (a>=b and b>=c) or (a<b and c>=b): return b;
  elif (a>=b and c>=a) or (a<b and a>=c):return a;
  else : 
    return c;

3-2. 조건문 줄이기

[기존 코드] n번 for문 돌 동안 계속 조건 확인해야해서 효율 떨어진다.
for i in range(1,n+1):
	if i%2 :
    	print('+',end="")
    else :
    	print('-',end="")
        
[성능 높인 코드]
for _ in range(n//2):
    print('+-',end="")
if n%2 == 1: 
	print('+', end="")

3-3. 반복문 건너뛰기

  • break : 포함된 반복문 중지
  • continue : 이번은 건너뛰고 다음 번부터 다시 반복

4. 공식

4-1. 가우스 덧셈

(n * (n+1)) // 2

: 1~n까지의 합

4-2. 드모르간 법칙

" no >= 10 and no <= 99 "
" not(no <10 or no >99) "
위 둘은 같다!

4-3. 난수 생성

import random
random.randint(a,b)

5. 파이썬의 특징

: 메모리 할당, 식별번호, 데이터 타입은 모두 객체와 관련된다.
: 변수는 그런 객체는 참조하는 것에 불과하다.

profile
두 발로 매일 정진하는 두발자, 강세훈입니다. 저는 '두 발'이라는 이 단어를 참 좋아합니다. 이 말이 주는 건강, 정직 그리고 성실의 느낌이 제가 주는 분위기가 되었으면 좋겠습니다.

0개의 댓글