본문 바로가기
Data Science/Python Introduction

[6일차] 기초수학 연습문제로 마무리하고, 자료구조 시작!

by 루크 Luke 2021. 10. 17.
반응형

 

[연습문제]

- N보다 작은 약수, 소수, 소인수 출력하기

  -> 약수는 N에서 해당 수를 나눠서 나머지가 0이면 출력

  -> 소수는 해당 수를 다시 1부터 해당 수 - 1 까지 나눠서 나머지가 0인 애가 없으면 출력

  -> 소인수는 약수이면 +1, 소수이면 +1해서 2 이면 출력

- N을 소인수분해해서, 소인수들의 지수 출력하기

  -> 나머지가 0이면 리스트에 추가하고 갯수 세기 : list.count(n) - list에서 n의 갯수를 카운트함

- 서로소는 1 이외에 약수가 없는 두 수를 의미함

- 최소공배수는 두 수의 곱에서 최대공약수로 나누면 구할 수 있음 : 최대공약수를 먼저 구하면 될 듯

- 2진수로 변환 : bin(n)

- 8진수로 변환 : oct(n)

- 16진수로 변환 : hex(n)

- 10진수로 변환 : int('숫자', 현재 진법 숫자(2진수라면 2))

- 등차수열 : 첫항 a1, 공차 d, n번째 ; a1 + (n-1)*d

- 등비수열 : 첫항 a1, 공비 r, n번재; a1 * r^(n-1)

- 계차수열의 경우에는 공차의 규칙성에 해당하는 수열의 n-1 항까지의 합과 계차수열 첫항을 더하면 n번째 항이 되는 수열임. 

예제) 첫날 쌀 두톨을 받고, 둘째 날은 하루 전의 2배에 해당하는 쌀을 받는다고 할 때, 30일 째 되는 날 받는 쌀의 톨 수와 모두 받은 톨의 수를 출력하는 프로그램 코딩

- 피보나치수열 : 전과 전전의 합이 나인 경우.

- 군수열 : 묶어서 규칙성을 찾는다고 생각하자. 군 별 첫항을 구해서 그 규칙성을 적용

- 순열 nPr = n! / (n-r)!

- 조합 nCr = nPr / r! = n! / { r! * (n-r)!}

 

[자료구조]

- 데이터를 묶어서 관리

- 여러 개의 데이터가 묶여있는 자료형을 컨테이너 자료형

- 이러한 컨테이너 자료형의 데이터 구조를 자료구조라고 한다.

- 자료구조의 형태가 많은데, 그 형태별로 관리하는 방법이 다르다.

- List, Tuple, Dic, Set

파이썬의 자료구조 예시

[리스트]

- 배열과 같이 여러 개의 데이터를 나열한 자료구조

- [] <- 대괄호를 이용해서 선언하고, 콤마(,)로 데이터를 구분함

- 숫자, 문자(열), 논리형 등 모든 기본 데이터를 같이 저장할 수 있음

- 리스트 안에 또 다른 컨테이너 자료형 데이터를 저장할 수도 있음

- 인덱스 : 아이템에 자동으로 부여되는 번호표

- 인덱스는 0번으로 시작함

- 리스트 아이템은 인덱스를 이용해서 조회 가능하다.

- 리스트의 길이 : len(list)

- len 값이 5라면, 인덱스는 0~4까지 있다고 생각하면 좋다.

- 위 예시를 반복문을 사용한다면, range(len(students))를 이용하면 된다.

- len 함수는 리스트 뿐만 아니라, 문자열의 길이도 알 수 있다. len(str)

- for문을 활용하면 리스트의 아이템을 자동으로 참조할 수 있다.

cars = ["a","b","c","d","e","f"]
# 방법-1
for i in range(len(cars)):
    print(cars[i])
# 방법-2
for j in cars:
    print(j)

- while문을 이용하면 다양한 방법으로 조회 가능하다.

cars = ["a","b","c","d","e","f"]
# 방법-1
while n < len(cars):
    print(cars[i])
    n += 1
    
# 방법-2
flag = True
while flag:
    print(cars[n])
    n += 1
    
    if n == len(cars):
        flag = False

 

[enumerate()]

- 인덱스와 아이템을 한번에 조회

sports = ['농구', '수구', '축구', '마라톤', '테니스']

for idx, value in enumerate(sports):
    print('{} : {}'.format(idx, value))

- enumerate()는 문자열에도 적용할 수 있다.


온라인 강의 6일차 후기

 

오호 enumerate()를 문자열에도 쓸 수 있는지 몰랐다.

헷갈리는 함수였는데, 이번 기회에 정리해서 좋았다.

기초 수학도 마치고, 자료구조 시작했으니 이제 더 집중해서 온라인 들어야지!

오늘도 고생했다~

 

 

- 네카라쿠배 데이터사이언스 오프라인 1기 수강 中

https://zero-base.co.kr/

 

제로베이스 - 밑바닥부터 끝까지 듣는 온라인 강의

무조건 간다! 개발자 스쿨 '네카라쿠배', 끝까지 공부하는 '온라인 완주반', 전문가가 베스트셀러를 해석해 주는 '한달한권' 등 교육 서비스로 삶의 전환점을 제공하는 제로베이스입니다.

zero-base.co.kr

 

반응형

댓글