전체 글 429

그리디 알고리즘 이론

그리디 알고리즘(탐욕법) 현재 상황에서 지금 당장 좋은 것만 고르는 방법 일반적인 그리디 알고리즘은 문제를 풀기 위한 최소한의 아이디어를 떠올릴 수 있는 능력을 요구 최적의 해를 구하기 예제) 그리디 알고리즘은 이처럼 매 상황에서 최고의 상황만 선택한다. 일반적인 상황에서 최적의 해를 보장할 수 없다. 코딩테스트의 경우 이처럼 그리디 알고리즘으로 푸는 것이 최적의 해가 나오도록 설계되어 있다. 정당성 분석을 진행한다. 문제1 : 거스름 돈 문제1 : 1. 문제 해결 아이디어 최적의 해를 빠르게 구하기 위해서는 가장 큰 화폐 단위부터 돈을 거슬러 준다. N원을 거슬러 줘야 할 때, 가장 먼거 500원으로 거슬러 줄 수 있을 만큼 거슬러 준다. 이후에 100원, 50원, 10원짜리 동전을 차례대로 거슬러 준..

표준 라이브러리(순열, 조합)

함수 기능 내장 함수 기본 입출력, 정렬함수 등을 제공 itertools 반복되는 형태의 데이터를 처리하기 위한 유용한 기능들을 제공 ex) 순열, 조합 heapq 힙 자료구조를 제공 ex) 우선순위 큐 bisect 이진 탐색(Binary Search) 기능을 제공 collections 덱(deque), 카운터(Counter)등의 자료구조 math 필수적인 수학적인 기능 제공 ex) 팩토리얼, 제곱근, 최대공약수(GCD), 삼각함수, 파이(PI) #sum() result = sum([1,2,3,4,5]) #min(), max() result = min(7,3,5,2) result = max(7,3,5,2) #eval() result = eval("(3+5)*7") #sorted() result = sor..

함수

내장 함수 파이썬이 기본적으로 제공하는 함수 input, print 사용자 정의 함수 개발자가 직접 정의하여 사용할 수 있는 함수 import ~~ 매개변수 : 함수 내부에서 사용할 변수 반환 값 : 처리된 결과를 반환 #더하기 함수 def add(a,b): return a+b global 키워드 지역 변수를 만들지 않고, 함수 바깥에 선언된 변수를 바로 참조 #1씩 10번 더하는 함수 a = 0 def func(): global a a += 1 for i in range(10): func() print(a) 여러 개의 반환 값 def operator(a,b): add = a+b sub = a-b mul = a*b return add, sub, mul a,b,c = operator(7,3) Lambda ..

조건문

조건문의 기본적인 형태는 if ~ elif ~ else if 조건문 1: 조건문 1이 True일 때 실행 elif 조건문 2: 조건문 1에 해당하지 않고, 조건문 2가 True일 때 실행되는 코드 else: 모두 아닐 때 실행되는 코드 기타 연산자 다수의 데이터를 담는 자료형을 위해 in 연산자와 not in 연산자가 제공 리스트, 튜플, 문자열, 딕셔너리 모두에서 사용이 가능 in 연산자와 not in 연산자 설명 X in 리스트 리스트 안에 X가 들어가 있을 때 참(True)이다. X not in 문자열 문자열 안에 X가 들어가 있지 않을 때 참(True)이다. Pass 키워드 아무것도 처리하고 싶지 않을 때 pass 키워드를 사용한다. 디버깅 과정에서 일단 형태만 만들고 실행할 경우 score = ..

1. 기본세팅(Metamask) 준비

Download MetaMask | Blockchain wallet app and browser extension Download the most loved wallet. Multiple browsers and operating systems supported. metamask.io 위 링크를 통해 개인 지갑을 만들기 위해 크롬 버전으로 Metamask 지갑을 다운로드한다. 지갑 : 코인을 저장하는 DB 우측을 눌러서 새롭게 만들자 그 이후 비밀번호를 설정해주고 백업 비밀번호를 작성한다. 백업 비밀번호는 다시 찾지 못하므로 잘 보관해둔다. 잘 완료됐다. OpenSea, the largest NFT marketplace OpenSea is the world's first and largest web3 ma..

BlockChain/Token 2022.07.04

표준 입/출력

input() 한 줄의 문자열을 입력받는 함수 map() 리스트의 모든 원소에 각각 특정한 함수를 적용할 때 사용 #공백을 기준으로 구분된 데이터를 입력받기 list(map(int, input().split())) #공백을 기준으로 (적은 데이터) 데이터 입력받기 a,b,c = map(int, input().split()) 입력을 위한 전형적인 소스코드 1) # 데이터의 개수 입력 n = int(input()) #각 데이터를 공백으로 기준으로 구분하여 입력 data = list(map(int, input().split())) #map 함수를 통해 입력된 수를 int형으로 data.sort(reverse = True) print(data) #실행 결과 5 65 90 75 34 99 [99,90,75,65,..

자료형

사전 자료형 Key와 Value의 쌍을 데이터로 가지는 자료형 변경 불가능한 자료형을 Key로 사용 가능 Hash Table을 이용하므로 데이터의 조회 및 수정에 O(1)의 시간복잡도를 가진다. Key Value 사과 Apple 바나나 Banana 코코넛 Coconut data = dict() data['사과'] = 'Apple' data['바나나'] = 'Banana' data['코코넛'] = 'Coconut' if '사과' in data: print("존재") #실행 결과 "존재" 사전 자료형에서는 키와 값을 별도로 뽑아내기 위한 메서드를 지원한다. keys()함수로 키 데이터를 뽑아 리스트로 이용 values()함수로 값 데이터만 뽑아 리스트로 이용 # 키 데이터만 담은 리스트 key_list = ..

리스트

리스트 컴프리헨션 리스트를 초기화 하는 방법 조건문과 반복문을 활용하여 초기화 2차원 리스트를 초기화할 때 가장 효과적 array = [i for i in range(10)] #0~9까지 리스트 초기화 array = [i for i in range(10) if i % 2 == 1]#0~9까지 홀수만 포함 array = [i * i for i in range(1,10)]#1~9까지 i제곱만 포함 array = [[0] * m for _in range(n)]# N*M 크기의 2차원 리스트 초기화 N * M 크기의 2차원 리스트 초기화 n = 4 m = 3 array = [[0] * m for _in range(n)] print(array) #실행 결과 [[0,0,0],[0,0,0],[0,0,0],[0,0,0..