파이썬에서는 e나 E를 이용한 지수 표현 방식을 사용
1e9라고 입력하면, 10의 9제곱이 됨
지수 표현 방식은 임의의 큰 수를 표현하기 위해 자주 사용됨
최단 경로 알고리즘에서는 도달할 수 없는 노드에 대하여 최단 거리를 무한으로 설정하곤 함
이때 가능한 최댓값이 10억 미만이라면 무한의 값으로 1e9를 이용할 수 있음
# 1,000,000,000의 지수 표현 방식
a = 1e9
print(a) # 실수로 출력 1000000000.0
print(int(a)) # 정수로 출력 1000000000
a = 75.25e1
print(a) # 752.5
a = 3954e-3
print(a) # 3.954
a = 0.3 + 0.6
print(a)
if a == 0.9:
print(True)
else:
print(False)
0.8999999999999999
False
a = 0.3 + 0.6
print(round(a, 4))
if round(a, 4) == 0.9:
print(True)
else:
print(False)
0.9
True
a = 10
b = 3
print(a / b, a % b, a // b, a ** b)
3.3333333333333335 1 3 1000
n = 10
a = [0] * n
print(a)
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
array = [i for i in range(10)]
array2 = list(i for i in range(10))
print(array)
print(array2)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
array = [i for i in range(20) if i % 2 == 1]
print(array)
[1, 3, 5, 7, 9, 11, 13, 15, 17, 19]
N = 2
M = 3
array = [[0] * M for _ in range(N)]
print(array)
array[1][1] = 2
print(array)
[[0, 0, 0], [0, 0, 0]]
[[0, 0, 0], [0, 2, 0]]
a = (1, 2, 3)
print(a[1], a[-1])
a[1] = 2
2 3
Traceback (most recent call last):
File "DataStructure/test.py", line 3, in <module>
a[1] = 2
TypeError: 'tuple' object does not support item assignment
data = dict()
data['사과'] = 'Apple'
data['바나나'] = 'Banana'
key_list = data.keys() # 키 데이터만 담은 리스트
value_list = data.values() # 값 데이터만 담은 리스트
print(key_list)
print(value_list)
print(data)
dict_keys(['사과', '바나나'])
dict_values(['Apple', 'Banana'])
{'사과': 'Apple', '바나나': 'Banana'}
- 중복을 허용하지 않음
- 순서가 없음
array = [1, 2, 2, 3, 4, 3]
data = set(array)
print(array)
print(data)
[1, 2, 2, 3, 4, 3]
{1, 2, 3, 4}
a = set([1, 2, 3, 4, 5])
b = set([3, 4, 5, 6, 7])
print("합집합 : ", a | b)
print("교집합 : ", a & b)
print("차집합 : ", a - b)
합집합 : {1, 2, 3, 4, 5, 6, 7}
교집합 : {3, 4, 5}
차집합 : {1, 2}
# 데이터 개수 입력
n = int(input())
# 각 데이터를 공백을 기준으로 구분하여 입력
data = list(map(int, input().split()))
data.sort(reverse = True) # 크기가 큰 순서대로 정렬
print(data)
5
75 80 69 88 97
[97, 88, 80, 75, 69]
# a, b, c를 공백을 기준으로 구분하여 입력
a, b, c = map(int, input().split())
print(a, b, c)
2 10 4
2 10 4
import sys
data = sys.stdin.readline().rstrip() # 문자열 입력 받기
print(data)
print(1, 2, sep = ",")
print(3, end = " ")
print(4)
1,2
3 4
answer = 10
print(f"정답은 {answer}입니다.")
score = 95
result = "Success" if score >= 80 else "Fail"
print(result)
Success
scores = [90, 85, 77, 65, 97]
cheating_student_list = {2, 4}
for i in range(len(scores)):
if i + 1 in cheating_student_list:
continue
if scores[i] >= 80:
print(i + 1, "번 학생은 합격입니다")
else:
print(i + 1, "번 학생은 불합격입니다")
1 번 학생은 합격입니다
3 번 학생은 불합격입니다
5 번 학생은 합격입니다
array = [1, 2, 3, 4, 5] # 전역 변수
def func(a):
array = [3, 4, 5] # 지역 변수
array.append(a)
return array
print(array)
print(func(6))
print(array)
[1, 2, 3, 4, 5]
[3, 4, 5, 6]
[1, 2, 3, 4, 5]
array = [1, 2, 3, 4, 5] # 전역 변수
def func(a):
global array
array = [3, 4, 5] # 전역 변수 변경
array.append(a)
return array
print(array)
print(func(6))
print(array)
[1, 2, 3, 4, 5]
[3, 4, 5, 6]
[3, 4, 5, 6]
print((lambda a, b : a + b)(3, 7)) # 10
array = [('lee', 100), ('kim', 76), ('park', 98)]
def my_key(x):
return x[1]
print(sorted(array, key = my_key))
print(sorted(array, key = lambda x : x[1]))
print(sorted(array, key = lambda x : -x[1]))
[('kim', 76), ('park', 98), ('lee', 100)]
[('kim', 76), ('park', 98), ('lee', 100)]
[('lee', 100), ('park', 98), ('kim', 76)
list1 = [1, 2, 3, 4, 5]
list2 = [6, 7, 8, 9, 10]
result = map(lambda a, b: a + b, list1, list2)
print(list(result))
result = map(lambda a: a**2, list1)
print(list(result))
[7, 9, 11, 13, 15]
[1, 4, 9, 16, 25]
파이썬에서 반복되는 형태의 데이터를 처리하기 위한 유용한 기능들을 제공함
순열과 조합 라이브러리는 코딩 테스트에서 자주 사용됨
순열 : 서로 다른 n개에서 서로 다른 r개를 선택하여 일렬로 나열
from itertools import permutations, combinations
data = ['A', 'B', 'C']
result = list(permutations(data, 3))
print(result)
[('A', 'B', 'C'), ('A', 'C', 'B'), ('B', 'A', 'C'), ('B', 'C', 'A'), ('C', 'A', 'B'), ('C', 'B', 'A')]
from itertools import permutations, combinations
data = ['A', 'B', 'C']
result = list(combinations(data, 3))
print(result)
[('A', 'B', 'C')]
from itertools import product
data = ['A', 'B', 'C']
result = list(product(data, repeat = 2))
print(result)
[('A', 'A'), ('A', 'B'), ('A', 'C'), ('B', 'A'), ('B', 'B'), ('B', 'C'), ('C', 'A'), ('C', 'B'), ('C', 'C')]
from itertools import combinations_with_replacement
data = ['A', 'B', 'C']
result = list(combinations_with_replacement(data, 2))
print(result)
[('A', 'A'), ('A', 'B'), ('A', 'C'), ('B', 'B'), ('B', 'C'), ('C', 'C')]
from collections import Counter
colors = ['red', 'blue', 'red', 'green', 'blue', 'blue']
counter = Counter(colors)
print(counter['blue']) # 'blue'가 등장한 횟수 출력
print(counter['green']) # 'green'이 등장한 횟수 출력
print(dict(counter)) # 사전 자료형으로 반환
3
1
{'red': 2, 'blue': 3, 'green': 1}
import math
def lcm(a, c): # 최소 공배소를 구하는 함수
return a * b // math.gcd(a, b)
a = 21
b = 14
print(math.gcd(a, b)) # 최대 공약수 계산
print(lcm(a, b)) # 최소 공배수 계산
7
42