코테분석#3 파이썬 자료형

정은경·2020년 2월 23일
0

알고리즘

목록 보기
3/125

자료형을 효율적으로 사용하자!

1. Single: integer/float/string/boolean

integer

  • 수의 크기 제한이 딱히 없음 (overflow 걱정 줄일 수 있음)
  • str()로 쉬운 형변환
  • 연산/함수 사용 시, float로 변화되는 경우를 잘 살펴보자
  • 나눗셈은 '/'가 아닌 '//'로 안전하게 나누자!(또는 divmod사용)
  • 3/3 => 1.0
  • 3//3 => 1
  • divmod(7,3) => (2,1)

float

  • 코테에서는 float형 일단은 쓰지 말자! (decimal 모듈 사용해야함!)
  • 실수오차가 존재: 0.1 * 3 == 0.3 ==> False

유리수 연산은?

  • 될 수 있다면 tuple 등으로 분자/분모를 따로 처리하자
  • 1/3 => (1,3)

string

  • immutable 변수니깐 list로 변환하여 사용하기
  • '+'연산과 '*'연산 보다는 .join() 사용하기!
  • .split()과 .replace() 등 다양한 method 활용이 초점
  • slicing을 자유롭게 할 수 있는 것
  • char를 ord와 chr로 다루기
  • chr(65) => A
  • ord('A') => 65

boolean

  • 논리 연산과 활용
  • short circuit
  • or 연산에 앞 항이 참
  • and 연산에 앞 항이 참
  • 모든 문제의 기본: 참/거짓

\n\n

2. Container: list/tuple/dictionary/set

list

  • list comprehension 사용하기

    %time
    list_arr = [i for i in range(100)]
    set = (i for i in range(100))
    
    list_arr = [i for i in range(100) if i%2==0]
  • sort와 sorted 구분하기

  • len, sum, max, min 등 활용하기

  • slicing, [-1] 등 음수 인덱스 활용

  • reduce, filter도 활용하면 좋음

tuple

  • 초기 상태 표현시 코드가 길어지는 걸 방지
  • ex) a,b,c = 0,0,0
  • map과 함께 사용하여 입력 받기
  • ex) a,b = map(int, input().split())
  • 동시에 변해야하는 객체에 효율적 표현 가능(swap)
  • a,b = b,a

dictionary

  • key나 value를 사용하여 효율적인 사용 추천
  • 반복문 돌리기
  • ex) for a,b in dict_exam:
  • 개인적으로는 문자열 자체를 index로 사용하고 싶은 경우
  • 단어나 알파벳 counting

set

  • 중복체크
  • set(list) 사용
  • 합집합, 여집합, 차집합 등 집합 연산
  • 시간복잡도가 크니 주의해서 사용
profile
#의식의흐름 #순간순간 #생각의스냅샷

0개의 댓글