Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 변할 수 있는
- 부스트캠프
- 정보를 담을 수 있는 그릇
- Python
- append()
- 귀도 반 로섬
- 변수
- index()
- 1일차
- a=1
- 딥러닝
- html
- 파이썬
- 합집합
- pop()
- 리스트와 차이점
- 입출력
- null # undefined
- 그룹 # 그룹 해체 # 단축키 #figma #Figma
- 변수와 입출력
- input()
- Java Script # == # === # difference # 차이
- del()
- 조지 불
- 차집합
- 조건문 큰 수부터 입력받아야하는 이유
- 불리안
- false
- 성적 입력받기
- insert()
Archives
- Today
- Total
I about me
[이것이 코딩테스트다] 1. 코딩 테스트 출제 경향 분석 및 파이썬 문법 부수기 (2) 본문
해당 강의를 참고하여 공부를 진행했습니다.
https://www.youtube.com/watch?v=m-9pAwq1o3w&list=PLRx0vPvlEmdAghTr5mXQxGpHjWqSz0dgC
지극히 개인적으로 헷갈렸던 부분이나 몰랐던 내용에 대해서만 정리했습니다.
6강: 파이썬 문법 - 사전, 집합 자료형
- 리스트나 튜플은 순서가 있기 때문에 인덱싱을 통해 자료형의 값을 얻을 수 있다.
- 사전 자료형과 집합 자료형은 순서가 없기 때문에 인덱싱으로 값을 얻을 수 있다.
- 사전의 키(Key) 혹은 집합의 원소(Element)를 이용해 O(1)의 시간 복잡도로 조회한다.
7강: 파이썬 문법 - 기본 입출력
import sys
data = sys.stdin.readline().rstrip()
print(data)
8강: 파이썬 문법 - 조건문
# if, elif, else
# pass
a = 50
if a >= 30:
pass
else:
print("a < 30")
# 조건문 간소화: 조건문이 가운데 들어간다고 생각하기
score = 85
result = "Success" if score >= 80 else "Fail"
print(result)
9강: 파이썬 문법 - 반문
# while
# for → for문으로 하는 것이 더 간결한 경우가 많다
# continue, break
10강: 파이썬 문법 - 함수와 람다 표현식
# global
a = 0
def fuc():
global a # 선언된 전역 변수를 불러와
a += 1
for i in range(10):
fuc()
print(a) # 10
리스트에서 따로 global 선언을 따로 안 해줘도 되긴 하다.
array = [1, 2, 3, 4, 5]
def func():
array.append(6)
print(array)
func() # [1, 2, 3, 4, 5, 6]
그러나 함수 안에 리스트를 넣을 경우, 함수 안에 선언된 것이 우선되어 결과값이 도출된다.
array = [1, 2, 3, 4, 5]
def func():
array = [3, 4, 5]
array.append(6)
print(array)
func() # [3, 4, 5, 6]
그러므로 명확하게 해주고 싶을 때는 global array 해주도록 하자.
# lambda
여러 개의 리스트에 적용하는 것은 처음 알았다...
list1 = [1, 2, 3, 4, 5]
list2 = [6, 7, 8, 9, 10]
result = list(map(lambda a, b: a + b, list1, list2))
print(result)
11강: 파이썬 문법 - 자주 사용되는 표준 라이브러리
import heapq
import bisect
sum()
result = sum([1, 2, 3, 4, 5])
print(result)
min(), max()
min_result = min([7, 3, 5, 2])
max_result = max([7, 3, 5, 2])
print(min_result, max_result)
eval()
result = eval("(3+5)*7")
print(result)
아래의 문제를 풀어보면 참 좋을 것 같다
더보기
큰 수식 찾기
N = input().split()
result1 = eval(N[0])
result2 = eval(N[1])
print(max(result1, result2))
sorted()
result = sorted([9, 1, 8, 5, 4])
print(result) # [1, 4, 5, 8, 9]
sorted() with 'reverse = True'
reverse_result = sorted([9, 1, 8, 5, 4], reverse = True)
print(reverse_result) # [9, 8, 5, 4, 1]
sorted() with key
array = [('홍길동', 50), ('이순신', 32), ('아무개', 74)]
result = sorted(array, key = lambda x: x[1], reverse = True)
print(result) # [('아무개', 74), ('홍길동', 50), ('이순신', 32)]
from itertools
- 순열 nPr = n * (n - 1) * (n - 2) * ... * (n - r + 1)
from itertools import permutations
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')]
- 조합 nCr = n * (n - 1) * (n - 2) * ... * (n - r + 1) / r!
from itertools import combinations
result = list(combinations(data, 2))
print(result) # [('A', 'B'), ('A', 'C'), ('B', 'C')]
- 중복 순열
from itertools import product
data = ['A', 'B', 'C']
result = list(product(data, repeat = 3))
print(result)
- 중복 조합
from itertools import combinations_with_replacement
data = ['A', 'B', 'C']
result = list(combinations_with_replacement(data, 3))
print(result)
from collections
from collections import Counter
L = Counter(['red', 'blue', 'red', 'green', 'blue', 'blue'])
print(L['blue']) # 3
print(L['green']) # 2
print(dict(L)) # {'red': 2, 'blue': 3, 'green': 1}
최대공약수와 최소공배수
import math
def lcm(a, b):
return a * b // math.gcd(a, b)
a = 21
b = 14
print(math.gcd(21, 14)) # 최대공약수 gcd 7
print(lcm(21, 14)) # 최소공배수 lcm 42
'Algorithm > 이것이 코딩테스트다!' 카테고리의 다른 글
[이것이 코딩테스트다] 5. 이진 탐색 (1) | 2024.07.22 |
---|---|
[이것이 코딩테스트다] 4. 정렬 (0) | 2024.07.19 |
[이것이 코딩테스트다] 3. DFS/ BFS (0) | 2024.07.18 |
[이것이 코딩테스트다] 2. 그리디 & 구현 (1) | 2024.07.18 |
[이것이 코딩테스트다] 1. 코딩 테스트 출제 경향 분석 및 파이썬 문법 부수기 (1) (0) | 2024.07.15 |