본문 바로가기
2️⃣ Study/⚙ 알고리즘

[자료구조] 필수 파이썬 문법 - 자료형

by isdawell 2022. 9. 1.
728x90

 

* 알고있는 내용은 필기 패스했음 

 

 

1️⃣  수 자료형 


 

 

| 코딩 테스트에서 대부분 정수형을 다루는 문제가 주로 출제된다. 

 

 

🐾 정수형 : 양의 정수, 음의 정수, 0 

 

 

🐾 실수형 : 소수점 아래를 포함하는 수 자료형으로 소수부가 0이면 0을 생략해 작성할 수 있다. 

 

 

a = 5.

print(a) 

# 5.0 

b = -.7 

print(b) 

# -0.7

   

 

🐾 지수표현방식 : e 나 E 를 이용한 지수표현 방식을 이용할 수 있다. 

 

      EX. 1e9 = 1,000,000,000

 

a = 1e9 # 10억의 지수표현방식
print(a) # 1000000000

a = 75.25e1 
print(a) # 752.5 

a = 3954e-3 
print(a) # 3.954

 

 

🐾 부동 소수점 : 컴퓨터는 2진수 방식으로 수를 처리하기 때문에 실수 정보를 표현하는데 한계점을 가진다. 가령 0.2+0.7 을 파이썬 연산에 입력하면 다음과 같이 정확하게 0.9로 떨어지지 않게 출력한다. 컴퓨터는 실수를 정확하게 표현해내지 못하기 때문에 round 함수를 사용하여 소수점을 정확히 표현하는 방법이 있다. 

 

 

 

🐾 연산자 

 

• 나누기 연산자 : 나눠진 결과를 실수형으로 처리함을 주의하기 

 

• 나머지 연산자 % : 가령 특정 변수가 홀수인지 알아볼 때 해당 숫자가 2로 나눈 나머지가 1인지 확인할 때 많이 쓰이는 연산자이다. 

 

• 몫 연산자 // 

 

• 거듭제곱 연산자 ** 

 

 

 

 

 

 

2️⃣  리스트 자료형 


 

| 여러개의 데이터를 연속적으로 담아 처리하기 위해 사용되는 자료형 

 

 

 

🐾 코딩 테스트에서 크기가 N 인 1차원 리스트 초기화 해야 하는 경우가 많다. 

 

 

 

🐾 인덱싱 음수 

 

 

 

🐾 슬라이싱 : 시작인덱스와 (끝 인덱스 - 1) 위치까지 출력 

 

 

🐾 리스트 컴프리헨션 : 리스트를 초기화 하는 방법 중 하나로, 대괄호 안에 조건문과 반복문을 넣는 방식으로 리스트를 초기화 시킬 수 있다. 

 

 

| 리스트 컴프리헨션은 2차원 리스트를 초기화할 때 매우 효과적으로 사용될 수 있다. 

 

 

 

🗨 주의 및 기억할 점 : 특정 크기의 2차원 리스트를 초기화 할 때는 반드시 리스트 컴프리헨션을 사용한다. 다음과 같이 초기화 한다면, 동일한 객체에 대한 레퍼런스로 인식되어 의도와는 다른 결과를 보이게 된다. 

 

 

 

 

🗨 _ 언더바의 역할 

 

• 반복을 수행하되 반복을 위한 변수의 값을 무시하고자 할 때 자주 사용된다. 

 

# Hello 3번 출력

for _ in range(3) : 
	print('Hello')

 

 

 

🐾 리스트 관련 메서드 : 특히 insert, append, remove 기억하기 

 

 

메서드명 사용법 설명 시간복잡도
append a.append() 원소를 하나 삽입할 때 사용, 마지막 위치에 삽입됨  O(1)
sort a.sort()

a.sort(reverse = True) 
오름차순 정렬

내림차순 정렬
O(NlogN)
reverse a.reverse() 원소 순서를 모두 뒤집음 O(N)
insert a.insert( 삽입 위치 인덱스, 삽입값) 특정 인덱스 위치에 원소를 삽입 O(N)
count a.count(값)  특정 값을 가지는 데이터 개수 세기  O(N)
remove a.remove(값) 특정 값을 가지는 원소 제거, 원소가 여러개면 하나만 제거 O(N)

 

 

 

 

🗨 insert VS append , 복잡도

 

• insert 는 중간에 원소를 삽입하고 리스트의 원소 위치를 조정해주어야 하기 때문에 복잡도가 O(N) 이다. 반면 append 는 마지막 인덱스 위치에 값을 추가하기만 하면 되서 복잡도가 O(1) 이다. 

 

• remove 의 경우 역시 중간에 있는 원소를 삭제하고 리스트 원소의 위치를 조정해 주어야 하기 때문에 복잡도가 O(N) 이다. 

 

 

🗨 특정 원소의 값을 모두 제거하고 싶을땐

 

• 파이썬은 그러한 함수를 기본적으로 제공해주지 않아 다음과 같은 방법으로 제거해야 함 

 

 

 

 

3️⃣ 문자열 자료형 


 

| 여러개의 데이터를 연속적으로 담아 처리하기 위해 사용되는 자료형 

 

 

 

🐾 문자열 초기화 : 백 슬래쉬 (/) 를 사용하며면 큰 따옴표나 작은 따옴표를 원하는 만큼 문자열 안에 포함 시킬 수 있다. 

 

 

 

 

🐾 문자열 연산 : 더하기 + 를 통해 문자열이 더해져서 연결될 수 있고, 문자열 변수를 양의 정수와 곱할 경우 문자열이 그만큼 여러번 더해진다. 문자열도 리스트처럼 인덱싱과 슬라이싱을 사용할 수 있다. 

 

 

 

 

 

 

4️⃣ 튜플 자료형 


 

| 한 번 선언된 값을 변경할 수 없으며 () 를 이용해 생성한다. 

 

| 대입 연산자를 사용하여 값을 변경할 수 없다는 의미이다. 

 

 

 

 

| 튜플 자료형은 그래프 알고리즘을 구현할 때 자주 사용된다. 다익스트라 최단 경로 알고리즘처럼 최단 경로를 찾아주는 알고리즘의 내부에서 우선순위 큐를 사용하는데, 해당 알고리즘에서 큐에 한번 들어간 값은 변경되지 않아 큐에 들어가는 데이터를 튜플로 구성하여 작성한다. 

 

| 변경하면 안 되는 값이 변경되고 있지 않은지 체크할 수 있다. 

 

 

 

 

5️⃣ 사전 자료형 


 

| key 와 value 를 쌍으로 가지는 데이터 자료형으로 변경 불가능한 데이터를 키로 사용할 수 있다. 

 

| 파이썬의 사전 자료형은 '해시 테이블' 을 내부적으로 이용해서 데이터의 검색 및 수정에 있어 O(1) 시간 안에 처리할 수 있다. 리스트보다 훨씬 빠르게 동작한다. 

 

| 사전 자료형은 코딩 테스트에서 자주 사용된다. 

 

| 사전 자료형에 특정한 원소가 있는지 검색할 때 '원소 in 사전' 형태를 사용할 수 있으며 in 은 리스트나 튜플에 대해서도 사용 가능한 문법이다. 

 

 

 

🐾 관련 메서드 : .keys() , .values() 

 

 

 

6️⃣ 집합 자료형 


 

| 중복을 허용하지 않는다, 순서가 없다

 

 

🗨 비교 : (리스트, 튜플) VS (사전, 집합) 

 

• 리스트, 튜플 : 순서가 있기 때문에 인덱싱을 통해 자료의 값을 얻을 수 있다. 

• 사전, 집합 : 순서가 없기 때문에 인덱싱으로 값을 얻을 수 없고 집합 자료형의 경우에는 키도 없다. 원소가 존재하는지 여부를 검사하는 연산의 시간 복잡도는 O(1) 이다. 

 

 

🐾  집합 생성 

 

 

🐾 집합 자료형 연산 

 

 

 

🐾 집합 자료형 함수 

 

add : 한 개의 값을 추가 

update : 여러 개의 값을 한꺼번에 추가 , 값은 리스트 형태로 추가한다. 

remove : 특정 값을 제거 

• add, remove 모두 시간복잡도는 O(1) 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

728x90

댓글