실수형
//10억
a = 1e9
//752.5
a = 75.25e1
//3.954
a = 3954e-3
파이썬에서는 변수에 소수점을 붙인 수를 대입하면 실수형 변수로 처리한다.
소수부가 0이거나 정수부가 0이면 0을 생략할 수 있다.
//a = 5.0
a = 5.
//a = -0.5
a = -.5
실수형 데이터는 e나 E를 이용한 지수표현 방식을 이용할 수 있다. 즉, 유효숫자e^지수 = 유효숫자 * 10^지수
특히, 무한(INF) 값을 표현할 때 최대값이 10억일 경우 INF값을 1e9로 표현할 수 있다. (1e9 = 10억)
//10억
a = 1e9
//75.25
a = 7.525e1
//3.954
a = 3954e-3
컴퓨터는 실수를 정확히 표현하지 않으므로,
정확한 실수는 round(첫번째 인자, 반올림하고자하는 위치-1) 함수로 반올림한다.
코딩테스트에서는 소수점 다섯번째자리에서 반올림한 결과가 같으면 정답으로 인정한다.
//a = 0.899999999999
a = 0.3+0.6
//a = 0.9
a = 0.3+0.6
round(a, 4)
나눌때의 몫만 구하고싶은 경우 // 을 사용한다.
리스트 자료형
리스트 -> 배열, 테이블
대괄호([])를 사용하며, 비어있는 리스트를 선언할때는 list() 나 [] 로 선언할 수 있다.
//빈 리스트 선언법1
a = list()
//빈 리스트 선언법2
a = []
모든값이 0인 1차원 리스트를 초기화하고싶으면?
//[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
n = 10
a = [0] * n
인덱싱과 슬라이싱
- 인덱싱 : 인덱스값을 이용하여 리스트의 특정한 원소에 접근하는것
인덱스가 음수 -> 리스트의 맨 뒤부터 원소 접근
a = [1, 2, 3, 4, 5]
a[-1] //5
a[-3] //3
a[2] = 7 //a = [1, 2, 7, 4, 5]
- 슬라이싱 : 인덱스값을 이용하여 리스트의 연속적인 위치를 갖은 원소들을 가져오는것 => [시작인덱스:끝인덱스-1]
a = [1, 2, 3, 4, 5]
a[1:4] // 2, 3, 4
리스트 컴프리헨션
대괄호 안에 조건문과 반복문을 넣는방식으로 리스트를 초기화하는방법
//0부터 19까지의 수 중에 홀수만 포함하는 리스트
array = [i for i in range(1, 20) if i%2 == 1]
//1부터 9까지 수의 제곱값을 포함하는 리스트
array = [i*i for i in range(1, 10)]
//NXM 크기의 2차원 리스트 초기화
//[[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]
n = 3
m = 4
array = [[0]*m for _ in range(n)]
2차원 크기의 리스트를 초기화할때에는 반드시 리스트 컴프리헨션을 이용해야한다. ★
리스트 관련 메소드
append() | 변수명.append() | 리스트에 원소를 삽입할때 | O(1) |
sort() | 변수명.sort() | 오름차순 정렬 | O(NlogN) |
변수명.sort(reverse=True) | 내림차순 정렬 | ||
reverse() | 변수명.reverse() | 원소의 순서를 뒤집기 | O(N) |
insert() | 변수명.insert(인덱스, 값) | 매개변수인 인덱스에 값을 넣을때 사용 | O(N) |
count() | 변수명.count(값) | 매개변수인 값을 가지는 데이터의 개수 | O(N) |
remove() | 변수명.remove(값) | 매개변수인 값을 제거함 -> 여러개가 있을때 하나만 제거 | O(N) |
a = [1,4,3]
a.append(2)
//a = [1, 4, 3, 2]
a.sort()
//a = [1, 2, 3, 4]
a.sort(reverse=True)
//a = [4, 3, 2, 1]
a.reverse()
//a = [1, 2, 3, 4]
a.insert(2, 3)
//a = [1, 2, 3, 3, 4]
a.count(3)
//2
a.remove(1)
//a = [2, 3, 3, 4]
특정한 값의 원소를 모두 제거하려면?
a = [1, 2, 3, 4, 5, 5, 5]
remove_set = {3,5}
result = [i for i in a if i not in remove_set]
//[1, 2, 4]
튜플 자료형
- 한번 선언된 값은 변경할 수 없다.
- 소괄호(())로 표현한다.
- 리스트에 비해 공간적으로 효율적이다.
- 원소의 성질이 서로 다를때 주로 사용한다.
사전 자료형
키와 값의 쌍을 데이터로 가지는 자료형
//빈 딕셔너리 선언법1
a = dict()
//빈 딕셔너리 선언법2
a = {}
사전 자료형 관련 함수
keys() : 키 데이터만 뽑아 리스트 생성
values() : 값 데이터만 뽑아 리스트 생성
items() : (키, 값) 쌍을 뽑아 리스트 생성
※ 키, 값 쌍에서 키나 값을 각각 접근하기
for key, value in dict.items():
실행할 코드
//빈 딕셔너리 생성
data = dict()
//딕셔너리 초기화
data['사과'] = 'Apple'
data['바나나'] = 'Banana'
data['코코넛'] = 'Coconut'
print(data)
//{'사과': 'Apple', '바나나':'Banana', '코코넛':'Coconut'}
key_list = data.keys()
//dict_keys(['사과', '바나나', '코코넛'])
value_list = data.values()
//dict_values(['Apple', 'Banana', 'Coconut'])
집합 자료형
- 중복을 허용하지않는다 -> 중복을 허용하지 않는 자료형으로 사용할 때 편리함
- 순서가 없다. -> 인덱싱으로 값을 얻을 수 없음
- 초기화는 set() 함수 or { } 안에 ,를 기준으로 구분하여 넣음
data = set([1, 1, 2, 3, 4, 4, 5])
data = {1, 1, 2, 3, 4, 4, 5}
print(data)
//{1, 2, 3, 4, 5} <-중복이 제거됨
- 합집합 : | , 교집합 : &, 차집합: - 이용
a = set([1, 2, 3, 4, 5])
b = set([3, 4, 5, 6, 7])
print(a|b)
//{1, 2, 3, 4, 5, 6, 7}
print(a & b)
//{3, 4, 5}
print(a-b)
//{1, 2}
집합 자료형 관련 함수
add() : 데이터 하나 추가
remove() : 특정값 제거
update() : 데이터 여러개 추가
data = set([1, 2, 3])
data.add(4)
//{1, 2, 3, 4}
data.remove(3)
//{1, 2, 4}
data.update([5, 6])
//{1, 2, 4, 5, 6}
출처 : 이것이 취업을 위한 코딩테스트다 with Python
'⚙️ 알고리즘 > 코딩테스트 준비' 카테고리의 다른 글
[Swift/Python] 코테 준비에 알아두면 좋을 사항 / 코드 (0) | 2023.01.02 |
---|---|
[Python] 문자열에서 문자, 숫자 분리하는법 (0) | 2021.04.19 |
[Python 문법] 주요 라이브러리 정리 (0) | 2021.01.28 |
[Python 문법] 함수, 입출력 (0) | 2021.01.20 |
[Python 문법] 조건문, 반복문 (0) | 2021.01.20 |