2025/02/14 8

Set Function & Method (세트 내장함수 & 메서드)

✅ 세트관련 내장함수(Built-in Function)함수설명예제출력len(set)집합 크기 반환len({1, 2, 3})3max(set)최댓값 반환max({1, 2, 3})3min(set)최솟값 반환min({1, 2, 3})1sum(set)합계 반환sum({1, 2, 3})6sorted(set)정렬된 리스트 반환sorted({3, 1, 2})[1, 2, 3]any(set)하나라도 참이면 Trueany({0, 0, 1})Trueall(set)모두 참이면 Trueall({1, 2, 3})Trueenumerate(set)인덱스와 요소 쌍 반환list(enumerate({1, 2, 3}))[(0, 1), (1, 2), (2, 3)]zip(set1, set2)집합 병렬 묶기list(zip({1, 2}, {'a'..

Dictionray Function & Method (딕셔너리 내장함수 & 메서드)

✅ 딕셔너리 관련 내장 함수 (Built-in Function)함수설명예제 코드출력len(dict)딕셔너리의 키 개수 반환len({"a": 1, "b": 2})2sorted(dict)키를 정렬하여 리스트로 반환sorted({"b": 2, "a": 1})['a', 'b']list(dict)키를 리스트로 변환list({"a": 1, "b": 2})['a', 'b']dict()새로운 딕셔너리 생성dict(a=1, b=2){'a': 1, 'b': 2}zip(keys, values)키, 값을 묶어 딕셔너리 생성dict(zip(["a", "b"], [1, 2])){'a': 1, 'b': 2}any(dict)하나라도 참이면 True 반환any({"a": 0, "b": 1})Trueall(dict)모든 키가 참이면 T..

List Function & Method (리스트 내장함수 & 메서드)

✅리스트 관련 내장함수 (Built-in Method)함수설명예제출력len(lst)리스트 길이 반환len([1, 2, 3])3max(lst)최댓값 반환max([1, 2, 3])3min(lst)최솟값 반환min([1, 2, 3])1sum(lst)합계 반환sum([1, 2, 3])6sorted(lst)정렬된 리스트 반환sorted([3, 1, 2])[1, 2, 3]any(lst)하나라도 참이면 Trueany([0, 0, 1])Trueall(lst)모두 참이면 Trueall([1, 2, 3])Trueenumerate(lst)인덱스와 요소 쌍 반환list(enumerate(['a', 'b']))[(0, 'a'), (1, 'b')]zip(lst1, lst2)리스트 병렬 묶기list(zip([1, 2], ['a',..

String Function & Method (문자열 내장함수 & 메서드)

✅문자열 관련 내장 함수 (Built-in Function)함수설명예제ord(char)문자의 유니코드(ASCII) 값을 반환ord('A') → 65chr(num)유니코드 값을 문자로 변환chr(97) → 'a'len(string)문자열 길이 반환len("hello") → 5str()다른 자료형을 문자열로 변환str(123) → "123"repr(obj)객체를 문자열로 변환 (개발자용)repr(3.14) → '3.14'format(value, spec)포맷 형식 적용format(3.1415, ".2f") → '3.14' # 입력: 문자 'A' → 출력: 유니코드 값 65print(ord('A')) # 65# 입력: 숫자 97 → 출력: 문자 'a'print(chr(97)) # 'a'text = "Pyt..

Numeric Type Function & Method (숫자형 내장함수 & 메서드)

✅숫자형 관련 내장 함수 (Built-in Function)함수설명예제코드출력abs(x)절댓값 반환abs(-5)5round(x, n)반올림 (소수점 n자리까지)round(3.14159, 2)3.14pow(x, y, z)거듭제곱 (x^y % z)pow(2, 3, 5)3divmod(x, y)몫과 나머지를 튜플로 반환divmod(10, 3)(3, 1)sum(iterable)합계 반환sum([1, 2, 3])6max(iterable)최댓값 반환max([3, 1, 4])4min(iterable)최솟값 반환min([3, 1, 4])1int(x, base)숫자 또는 문자열을 정수로 변환int("101", 2)5float(x)숫자 또는 문자열을 실수로 변환float("3.14")3.14complex(x, y)실수 x,..

Dynamic Programming(동적 계획법)

✅ Dynamic Programming:동적 계획법(DP, Dynamic Programming)은 큰 문제를 작은 문제로 나누고, 작은 문제들의 결과를 저장하여 같은 문제를 중복 계산하지 않도록 하는 알고리즘 기법입니다. 그리디 알고리즘 처럼 최적화 알고리즘이다. DP 알고리즘 순서문제를 DP로 풀 수 있는지 확인 1. 최적 부분 구조 : 큰 문제의 최적해가 작은 문제들의 최적해로 구성될 수 있어야한다.ex ) fib(n) = fib(n-1) + fib(n-2)2. 중복되는 부분 문제 (Overlapping   #Top-Down 방식def fibo_memo(n, memo={}): if n # Bottom-up 방식def fibo2(n): f = [0] * (n + 1) # 크기가 (n+1)..

Python Algorithm 2025.02.14

Memoization (메모화)

✅ Memoization: 함수가 한 번 계산한 결과를 저장해두고, 같은 입력이 들어오면 저장된 결과를 바로 사용하는 기법입니다.이렇게 하면 이미 계산한 값을 재계산하지 않아도 되므로 시간 복잡도를 크게 줄일 수 있습니다.  Memoization을 사용하는 이유 중복 계산 방지:피보나치 수열처럼 같은 부분 문제를 여러 번 계산해야 하는 경우에 유용합니다.Memoization을 쓰면 한 번 계산한 결과를 저장해 놓기 때문에, 동일한 입력이 다시 들어올 때 이미 계산해 둔 값을 그대로 돌려줄 수 있습니다. 그 결과 같은 입력에 대해 중복으로 계산할 필요가 없어 실행 시간을 크게 줄일 수 있습니다. 시간 복잡도 감소:단순 재귀로 피보나치를 구하면 지수 시간(O(2^n))이 걸리지만, Memoization을 적..

Python Algorithm 2025.02.14

4949. 균형 잡힌 세상

https://www.acmicpc.net/problem/4949 #세팅 값import syssys.stdin = open('solve.txt')input = sys.stdin.readlinedef check_balance(line): stack = [] # 문자열을 저장할 스택 for c in line: # 입력받은 문자열을 순회하면서 ([ 이 있다면 스택을 쌓아둔다.) if c in '([': stack.append(c) #만약에 c 가 ) 일 경우 # 스택에 맨 위에 있는게 ( 이 아니거나 # 스택에 아무것도 없다면 no 를 리턴한다. elif c == ')': if not ..

Baekjoon 2025.02.14