python 수업을 2번이나 들었는데......또 다시....(나는 바보입니다)
자료형
정수, 실수, 복소수, 문자열, 리스트, 튜플
정수형
- 양의 정수, 음의 정수, 0
실수형
- 소수점 아래의 데이터를 표현하는 수 자료형
- .n 으로도 표현 가능
- 실수 값 반올림 round(), round(소수,n째자리)
지수 표현 방식
- e나 E를 이용한 지수 표현 방식을 이용할 수 있다.
- e나 E다음에 오는 10의 지수부를 의미한다.
- 1e9라고 입력하게 되면 10의 9제곱
- 최단경로 알고리즘에서는 도달할 수 없는 노드에 대하여 최단 거리를 무한(INF)으로 설정하곤 한다.
- 이때 가능한 최댓값이 10억 미만이라면 무한의 값으로 1e9(10억)을 사용가능
기본 실수형으로 처리되기때문에 정수형 데이터로 지정되어있다면
int(1e9)이런식으로 지정
수 자료형의 연산
- 나누기 연산자(/)
- 나머지 연산자(%)
- 거듭제곱 연산자(**)
리스트 자료형
- 여러개의 데이터를 연속적으로 담아 처리하기 위해 사용하는 자료형
- c나 자바에서의 배열기능, 연결리스트와 유사한 기능 지원함
- 배열 혹은 테이블이라고도 부른다.
리스트 초기화
- 리스트는 대괄호[] 안에 원소를 넣어 초기화 하며 쉼표로 원소 구분
- 비어있는 리스트 선언 list(), [] 이용
- 리스트 원소 접근은 인덱스로 -> 인덱싱
- 인덱스는 양의 정수, 음의정수 모두 사용가능
- 음의 정수넣으면 거꾸로 탐색함
슬라이싱
- 연속적 위치를 갖는 원소 가져오기
- 끝 인덱스는 실제 인덱스보다 1을 더 크게 설정
리스트 컴프리헨션
- 대괄호 안에 조건문과 반복문을 적용하여 리스트 초기화함
- 2차원 리스트 초기화할때 효과적으로 사용될 수 있다 (오오!)
언더바는 언제 사용?
- 반복 수행하되, 반복을 위한 변수의 값을 무시하고자 할때 언더바를 자주 사용한다.
리스트 관련 기타 메서드
문자열 자료형
문자열 변수 초기화 "",''
- 전체문자열 큰따옴표 => 내부적으로 작은따옴표
- 작따 -> 큰따
= 백슬래시 -> 큰,작따 원하는 만큼 포함가능
문자열 연산
- 문자열변수에 덧셈을이용
- 인덱싱, 슬라이싱 가능
- 인덱싱으로 문자열 변경 불가
튜플 자료형
- 리스트와 유사함
- 한번 선언된 값 변경 불가 (문자열과 같음)
- 튜플은 소괄호를 이용함
- 공간효율적이다.
- 데이터 접근은 [] 인덱싱가능
- 특정 인덱스 값 바꿀수없음
- 서로다른 성질의 데이터를 묶어서 관리해야할 때
-> 최단경로 알고리즘에서는 비용, 노드번호의 형태로 튜플 자료형 자주 사용함
- 해싱의 키 값으로 데이터의 나열을 사용해야할때
- 리스트와 다르게 키 값으로 사용가능 (변경불가 특성)
- 리스트보다 메모리를 효율적으로 사용해야할 때
사전 자료형
- 키와 값의쌍을 데이터로 가지는 자료형
- 변경 불가능한 자료형을 키로 사용할 수 있다.
- 해시테이블을 가지기 때문에 O(1) 에 데이터의 조회, 수정 가능하다.
- dict() 함수를 이용해 초기화 가능
사전 자료형 관련 메서드
- 키 데이터만 뽑아서 리스트로 이용: keys()
- 값 데이터만 뽑아서 리스트로 이용 : values()
집합 자료형
- 집합은 다음과 같은 특징이 있다.
- 중복을 허용하지 않는다.
- 순서가 없다.
- 리스트 , 문자열을 이용해서 초기화 가능하다.
- set()함수를 이용한다.
- 중괄호({}) 안에 각 원소를 콤마를 기준으로 구분하여 삽임함으로써 초기화할 수 있다.
- 데이터의 조회 및 수정에 있어서 O(1) 의 시간에 처리할 수 있다.
집합 자료형의 연산
- 합집합 : 집합 A 에 속하거나 B에 속하는 원소로 이루어진 집합 (AUB)
- 교집합 : 집합 A 에도 속하고, B에도 속하는
- 차집합 : 집합 A 중 B에속하지않는 ..(A-B)
.add() : 새로운 원소추가
.update() : 새로운 원소 여러개 추가
.remove() : 특정값 원소 삭제
사전 자료형과 집합 자료형의특징
- 리스트나 튜플은 순서가 있기 때문에 인덱싱을 통해 자료형의값을 얻을 수 있따.
- 사전 자료형과 집합은 순서가 없기 때문에 인덱싱 값 얻기 불가
- 사전의 key 혹은 집합의 원소를 이용해 O(1) 의 시간복잡도로 조회함.
(다음 게시물은 7강부터!)
'✍️2023 > Algorithm' 카테고리의 다른 글
구현 (1) | 2023.04.21 |
---|---|
[BOJ/1439] 그리디 문제 (1) | 2023.04.20 |
[이코테] 그리디 (2) | 2023.04.18 |
python 코테준비- 문법공부 (2) (0) | 2023.04.18 |
python 코테 준비 - 개괄 (1) | 2023.04.13 |