반응형
# nxm 크기의 2차원 배열
n, m = map(int, input().split())
arr = [[0]*m for _ in range(n)]
# 리스트에서 특정 값을 가지는 원소를 모두 제거하기
a = [1, 2, 3, 4, 5, 5, 5]
remove_set = {3,5}
result = [i for i in a if i not in remove_set]
# 문자열 연산
a = "String"
print(a*3) # 문자열 여러번 출력
# StringStringString
a = "ABCDEF"
print(a[2:4]) # 문자열 슬라이싱
# CD
# 사전 자료형
a = dict()
a['홍길동'] = 97
a['이순신'] = 98
b = {
'홍길동':97,
'이순신':98
}
key_list = list(b.keys())
# 집합 자료형(중복 제거)
# 초기화 1
data = set([1, 1, 2, 3, 4, 4, 5])
# 초기화 2
data = {1, 1, 2, 3, 4, 4, 5}
# 집합 연산
a = set([1, 2, 3, 4, 5])
b = set([3, 4, 5, 6, 7])
# 합집합
s = a|b
# 교집합
s = a&b
# 차집합
s = a-b
# 기본 입력
# 5
# 78 95 34 2 56
n = int(input())
data = list(map(int, input().split()))
# 빠르게 입력 받기
import sys
data = sys.stdin.readline().rstrip()
# rstrip(): 입력 후 엔터가 줄 바꿈 기호로 입력되는 것을 고려하여 사용
# 기본 출력
a = 1
b = 1
print(a, b)
print(7, end=" ")
print(8, end=" ")
answer = 7
print("정답은 " + str(answer) + "입니다.")
# f-string: 중괄호 안에 변수명을 기입하여 간단히 문자열과 정수를 함께 넣을 수 있습니다.
answer = 7
print(f"정답은 {answer}입니다.")
# 조건문
x = 15
# style 1
if x>0 and x<20:
print(x)
# style 2
if 0<x<20:
print(x)
# 함수
def add(a, b):
return a+b
add(7,3)
add(b = 3, a = 7)
# global 키워드: 함수 바깥에 선언된 변수를 바로 참조
a = 0
def func():
global a # 전역 변수를 참조하려면 global 키워드를 사용해주어야 함
a+=1
array = [1, 2, 3, 4, 5]
def func():
array = [3, 4, 5]
array.append(6)
print(array)
func() # [3, 4, 5, 6]
print(array) # [1, 2, 3, 4, 5]
# 여러 개의 반환 값
def operator(a, b):
add_var = a + b
subtract_var = a - b
multiply_var = a * b
divide_var = a / b
return add_var, subtract_var, multiply_var, divide_var
a, b, c, d = operator(7, 3)
# 람다 표현식: 함수를 한 줄에 작성 가능
# 예시 1
def add(a, b):
return a+b
print(add(3, 7))
print((lambda a, b: a + b)(3, 7))
# 예시 2
array = [('홍길동', 50), ('이순신', 32), ('아무개', 74)]
def my_key(x):
return x[1]
print(sorted(array, key=my_key))
print(sorted(array, key=lambda x:x[1]))
# 예시 3
list1 = [1, 2, 3, 4, 5]
list2 = [6, 7, 8, 9, 10]
result = map(lambda a, b: a+b, list1, list2) # a+b를 반환값으로 하여, list1과 list2에 적용함
# 자주 사용되는 내장 함수
# eval()
result = eval("(3+5)*7")
print(result) # 56
# sorted()
result = sorted([9, 1, 8, 5, 4]) # [1, 4, 5, 8, 9]
reverse_result = sorted([9, 1, 8, 5, 4], reverse=True) # [9, 8, 5, 4, 1]
# sorted() with key
array = [('홍길동', 35), ('이순신', 75), ('아무개', 50)]
result = sorted(array, key=lambda x:x[1], reverse=True) # [('이순신', 75), ('아무개', 50), ('홍길동', 35)]
# 순열과 조합
# 순열
from itertools import permutations, repeat
data = ['A', 'B', 'C']
result = list(permutations(data, 3)) # [('A', 'B', 'C'), ('A', 'C', 'B'), ('B', 'A', 'C'), ('B', 'C', 'A'), ('C', 'A', 'B'), ('C', 'B', 'A')]
# 조합
from itertools import combinations
data = ['A', 'B', 'C']
result = list(combinations(data, 2)) # [('A', 'B'), ('A', 'C'), ('B', 'C')]
# 중복 순열과 중복 조합
# 중복 순열
from itertools import product
data = ['A', 'B', 'C']
# 중복을 허용하여 2개를 뽑는 모든 순열
result = list(product(data, repeat=2)) # [('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']
# 중복을 허용하여 2개를 뽑는 모든 조합
result = list(combinations_with_replacement(data, 2)) # [('A', 'A'), ('A', 'B'), ('A', 'C'), ('B', 'B'), ('B', 'C'), ('C', 'C')]
# Counter: 리스트와 같은 반복 가능한(iterable) 객체가 주어졌을 때 내부의 원소가 몇 번씩 등장했는지를 알려줌
from collections import Counter
counter = Counter(['red', 'blue', 'red', 'green', 'blue', 'blue'])
print(counter['blue']) # 'blue'가 등장한 횟수
print(counter['green']) # 'green'이 등장한 횟수
print(dict(counter)) # {'red': 2, 'blue': 3, 'green': 1}
# 최대공약수와 최소공배수
import math
# 최소 공배수(LCM)를 구하는 함수
def lcm(a, b):
return a*b // math.gcd(a, b)
a = 21
b = 14
math.gcd(a, b) # 7
lcm(a, b) # 42
반응형
'코딩테스트 > 기타' 카테고리의 다른 글
[개발형 코딩 테스트] REST API & JSON (0) | 2021.11.09 |
---|---|
[그래프 이론] 기타 그래프 이론 (0) | 2021.11.09 |
[Python] 파이썬 표준 라이브러리 (0) | 2021.10.05 |
[Python] 수행 시간 측정 소스코드 예제 (0) | 2021.10.04 |
[Python] 달팽이 배열 (0) | 2021.09.30 |