자료구조와 함께 배우는 알고리즘 입문 [파이썬] - 1장. 알고리즘 기초

youngtae·2023년 3월 25일
0
post-thumbnail

1. 알고리즘 기초

알고리즘이란 어떤 문제를 해결하기 위해 정해 놓은 일련의 절차

  • 순차 구조 sequential structure : 한문장씩 순서대로 처리되는 구조
  • 선택 구조 select structure : 결과에 따라 실행흐름이 변경
  • 형 변환 : 문자열형을 정수형으로 변환

    if문이나 while문 첫부분은 반드시 if or while로 시작 콜론(:)으로 끝내기

    시작 부분을 **헤더(header)**, 콜론은 ‘바로 뒤에 스위트가 이어집니다’의미
    
    (스위트(suite): 헤더와 한 세트로 따라다니는 실행문)
    
    `if a < b: min2 = a; max2 = b;`
    
    스위트가 단순문이면 헤더와 같은 행에 둘 수 있음
    
    단순문이 두개 이상이면 세미콜론으로 구분
  • 함수 내부에서 처리한 값을 반환할 때는 return문 사용
  • 분기(branching): 프로그램의 실행 흐름을 다른 곳으로 변경하는 명령
  • 단항연산자: 피연산자 1개(-a), 이항연산자: 피연산자 2개(a<b), 삼항연산자: 피연산자 3개(a if b else c), 조건 연산

1-2. 반복문

  • 조건 성립하는 동안 반복해서 처리

    while문은 사전에 반복할지를 판단: 사전 판단 반복 구조
    반복 대상 명령문: 루프 본문

  • 변수 하나일때는 while 보다는 for 사용

  • range() 함수는 이터러블 객체(반복할 수 있는 객체) 생성

    ex) list, tuple, str

  • 마지막 한번을 위한 if문은 효율 x, 별도로 출력

  • 두 값 교환 a, b = b, a tem = a, a = b, b = tem

  • 줄바꿈 없이 연속 출력: print(’메세지’, end = ‘’)

  • for문에서 반환값 필요 없으면 언더스코어

    for _ in range()

if n % 2: # n은 짝수일 때 반환값 0 = False이므로 출력 x, 
          #홀수면 반환값 1 = True라서 출력
	print('+')
  • 파이썬은 사후 판단 반복문 없으므로 break 사용하여 무한루프 탈출
  • 반복문 끝부분에 else 가능, 조건식에 의해 반복문 종료되는 경우 실행
  • break vs continue

    break: else 포함하여 전부 강제 종료
    continue: 반복문 나머지만 건너뜀

    특정조건 건너뛸 때: if 특정조건 참이면: continue

  • 파이썬 비교연산자 연속 가능 10<n<99

  • 드모르간의 법칙:

    각 조건을 부정하고 논리곱을 논리합으로, 논리합을 논리곱으로 바꾸고
    전체를 부정하면 원래 조건과 같다
    x and y = not( not x or not y)
    x or y = not( not x and not y)

  • random.randint(a, b) a 이상 b이하인 정수 중 무작위로 1개 뽑기

profile
나의 개발기록

0개의 댓글