| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | |||||
| 3 | 4 | 5 | 6 | 7 | 8 | 9 |
| 10 | 11 | 12 | 13 | 14 | 15 | 16 |
| 17 | 18 | 19 | 20 | 21 | 22 | 23 |
| 24 | 25 | 26 | 27 | 28 | 29 | 30 |
| 31 |
- react
- 코테 파이썬
- 티스토리챌린지
- 코딩테스트 준비
- 코딩테스트준비
- 개발자 취업
- C++
- 파이썬 코테
- 안드로이드
- vue
- Flutter
- ML
- 99클럽
- Laravel
- flutter getx
- 항해99
- DP
- 오블완
- 개발자취업
- 뷰
- 코테
- 플러터
- 코딩테스트
- Python
- 라라벨
- 파이썬
- til
- 알고리즘
- 백준
- c++ 코테
- Today
- Total
잡다로그
[Python] 코테 기초 문법 - 자료형 본문
자료형
- 정수형 - 많은 코딩 테스트 문제가 다루는 자료형
- 실수형 - 소수점 아래 데이터를 포함하는 자료형
- 복소수형
- 문자열
- 리스트 - C++의 vector, Java의 array list 라이브러리 기능을 가지고 있다.
- 튜플
- 사전
실수형
- 지수 표현 방식: 1e9 = 1* 10^9 (10의 9제곱) - 최단 경로 알고리즘에서 도달할 수 없는 노드에 대해 무한(INF)이라는 의미로 임의의 큰 수를 설정한다. 최댓값이 10억 미만이면 무한으로 1e9를 사용할 수 있음.
- 정수 데이터를 처리한다고 하면, 오류를 방지하기 위해 int(2e9) 와 같이 써준다.
- 실수 값의 미묘한 오차로 인한 비교 오류를 방지하기 위해 round() 함수(반올림)를 사용한다.
a = 0.3+0.6
if(round(a, 4)==0.9: # 소수점 넷째자리에서 반올림하여 셋째자리까지 출력
print(True)
else: # 그냥 if a==0.9 로 하면 False 출력됨
print(False)
파이썬에서 나누기 연산자(/)를 수행하면 실수형 결과를 반환한다.
나머지 연산자(%)를 효과적으로 사용할 수 있다. (ex. 홀수 판별)
몫 연산자(//), 거듭 제곱 연산자(**) 등도 제공한다.
리스트
- 배열 혹은 테이블이라고 부르기도 한다.
a = [1,2,3,4,5]
n = 10
a = [0] * n #길이가 1인 리스트를 n번 반복. [n,n,n,n,n,n,n,n,n,n] 출력
- 인덱싱(Indexing): 인덱스로 음의 정수를 넣으면, 원소를 거꾸로 탐색하게 된다. (list[-n] : 뒤에서부터 n번째)
- 슬라이싱(Slicing): 연속적인 위치를 갖는 원소들을 가져올 때. 시작과 끝 인덱스+1을 설정해서 가져온다.
- 리스트 컴프리헨션: 간결한 리스트 초기화 방법. 대괄호 안에 조건문과 반복문을 적용.
array = [i for i in range(10)] # [0,1,2,3,4,5,6,7,8,9]
array = [i for i in range(20) if i % 2 == 1] # [ 1, 3, 5, 6, 9, 11, 13, 15, 17, 19]
2차원 리스트 초기화에 효과적으로 사용됨.
array = [[0] * m for _ in range(n)]
array = [[0]*m] * n # 잘못된 예시
두 번째의 잘못된 예시는, 내부 리스트 ([0]*m)가 모두 같은 객체로 인식되어 문제가 발생할 수 있다.
* 파이썬에서 반복을 위한 변수의 값을 무시하고자 할 때 언더바(_)를 사용한다.
fot _ in range(5):
print("Hello World")
리스트 컴프리헨션을 사용하여 리스트에서 특정 값을 가지는 원소를 모두 제거할 수 있다 (remove 내장함수는 그 값인 원소 하나만 제거)
a = [1,2,3,4,5,5,5]
remove_set={3,5}
redult = [i for i in a if i not in remove_set] # [1,2,4]
문자열
- " 나 ' 로 문자열 변수 초기화
- 문자열은 특정 인덱스의 값 변경 불가(immutable)
튜플
- 한 번 선언된 값을 변경 불가 (리스트는 가능)
- 소괄호를 이용한다.
- 리스트에 비해 공간 효율성이 좋다. (기능이 제한적이라서 메모리 적게 차지함)
- 서로 다른 성질의 데이터를 묶어서 관리해야 할 때 (ex. 최단 경로 알고리즘에서 (비용, 노드 번호)의 형태로 사용)
- 해싱(hasing)의 키 값으로 데이터의 나열을 사용할 때
사전
- 키와 값을 쌍으로 데이터로 가지는 자료형. 순차 저장이었던 리스트나 튜플과 다르다.
- 해쉬 테이블 등으로 불리기도 한다.
- 키 데이터/값 데이터만 뽑아낼 수 있다. keys(), values()
집합
- 중복을 허용하지 않고, 순서가 없다. 존재 여부를 확인할 때 효과적이다.
- 리스트 또는 문자열을 이용해서 초기화할 수 있다.
- 중괄호 안에 콤마로 원소를 구분한다.
data = set([1, 1, 2, 3, 4, 4, 5]) # {1, 2, 3, 4, 5} 로 출력
- 합집합, 교집합, 차집합 연산을 제공한다.
- 특정 원소가 존재하는지 조회, 하나의 원소 추가/삭제할 때 상수 시간이 소요된다.
- 집합의 원소를 이용해 O(1)의 시간 복잡도로 접근한다.
본 포스팅은 하단의 책과 유튜브 강의를 참고하여 정리한 포스팅입니다.
이것이 취업을 위한 코딩 테스트다 with 파이썬 - YES24
나동빈 저자의 유튜브 라이브 방송 https://www.youtube.com/c/dongbinnaIT 취준생이라면 누구나 입사하고 싶은 카카오 · 삼성전자 · 네이버 · 라인!취업의 성공 열쇠는 알고리즘 인터뷰에 있다!IT 취준생
www.yes24.com
'Algorithm' 카테고리의 다른 글
| [Python/코테] DFS/BFS (1) - 개념, 스택, 재귀함수 (0) | 2023.04.21 |
|---|---|
| [Python/코테] 구현 알고리즘 (0) | 2023.04.16 |
| [Pyhton/코테] 그리디(Greedy) 알고리즘 (0) | 2023.04.08 |
| [Python] 기초 문법 - 기본 입출력, 조건문/반복문, 함수/람다표현식, 유용한 표준 라이브러리 (0) | 2023.03.31 |
| [알고리즘] 복잡도, 코테 기초 (0) | 2023.03.24 |