본문 바로가기

Study46

[Python(파이썬)] globals, locals, 변수명 지정 자동화 globals() - 전역변수 globals()를 호출하면 전역 변수를 Dictionary 형태로 불러온다. 딕셔너리처럼 globals()['a'] = 2이면 a -> key, 2 -> value 형태로 key-value 쌍이 된다. locals() - 지역변수 locals()를 호출하면 지역 변수를 Dictionary 형태로 불러온다. 변수명 자동 지정 방법 globals()[f'고정변수명{부여할 값(자동)}'] = 변수에 들어갈 값 for i in range(1, 6): globals()[f'test{i}'] = i * 10 for i in range(1, 6): print('test'+ str(i) + '=' + str(globals()[f'test{i}'])) 2023. 3. 14.
[Algorithm] LIS(Longest Increasing Subsequence; 최장 증가 부분 수열) LIS(Longest Increasing Subsequence; 최장 증가 부분 수열) 어떠한 수열에서 오름차순으로 정렬된 가장 긴 부분 수열을 찾는 문제 이때, 부분 수열은 서로 연속할 필요는 없다. 어떠한 수열에서 일부 원소를 선택해 새로 만든 수열은 '부분 수열'이며 그 수열이 오름차순으로 정렬되어 있으면 '증가하는 부분 수열'이다. ex) 수열 [10, 20, 10, 30, 20, 50] 해당 수열에서 [10, 20, 30, 50], [10, 20, 50], [10, 50],... 등 많은 증가 부분 수열이 있지만 많은 증가 부분 수열 中 가장 길이가 긴 수열은 4개의 원소를 가진 [10, 20, 30, 50]이다. 따라서 [10, 20, 30, 50] 최장 증가 부분 수열이다. LIS는 DP(D.. 2022. 3. 14.
[Python(파이썬)]컴프리헨션(Comprehension), for문, if문 한 줄로 만들기 for문, if문 [Python] for문(반복문), if문(조건문) for문(반복문) 명령이 반복 될 수 있게 하는 문법 특정 조건을 만족할 때까지 반복하는 while과 달리 원하는 횟수, 범위만큼 반복한다. for문 기본 구조 for [변수명] in [문자열, 리스트, 튜플] : [반 young-library.tistory.com 컴프리헨션(Comprehension) 파이썬 컨테이너 자료형(리스트, 딕셔너리, 세트)에 데이터를 좀 더 쉽고 간결하게 담기 위한 문법 '반복문과 조건문을 결합하여 하나의 구문으로 만들어 담는 것' 리스트 컴프리헨션, 딕셔너리 컴프리헨션, 세트 컴프리헨션, 제너레이터 컴프리헨션이 있다. 컴프리헨션 기본 구조 리스트 컴프리헨션 : [반복 실행문 for 변수 in 순회 가능 객.. 2022. 3. 11.
[Python(파이썬)] for문(반복문), if문(조건문) for문(반복문) 명령이 반복 될 수 있게 하는 문법 특정 조건을 만족할 때까지 반복하는 while과 달리 원하는 횟수, 범위만큼 반복한다. for문 기본 구조 for [변수명] in [문자열, 리스트, 튜플] : [반복하여 실행할 명령] for [변수명] in range([반복 횟수]) : [반복하여 실행할 명령] for문을 사용하여 리스트 출력 >>> nlist = ['a','b','c','d','e','f'] >>> for i in nlist: print(i) for문으로 리스트 인덱스 2부터 4까지 내용 출력 >>> nlist = ['a','b','c','d','e','f'] >>> for i in range(2,5): print(nlist[i]) for문으로 0-4 반복하여 출력하기 >>> fo.. 2022. 3. 10.
[Algorithm] Brute Force (브루트 포스) Brute force (브루트 포스) Brute (짐승[야수], 큰 동물) + Force (폭력, 힘) 직관적으로 무식하게 힘을 쓰는 알고리즘 Brute force (브루트 포스) 완전 탐색 알고리즘으로 가능한 모든 경우의 수를 탐색하고 조건에 충족되는 결과를 가져온다. 처음부터 끝까지 무식하게 모두 탐색하여 결과를 찾기 때문에 100%의 확률로 정답을 출력한다. 브루트 포스 알고리즘을 설계할 때는 '해가 하나 이상 존재한다'는 가정을 세우고 모든 범위를 탐색한다. 브루트 포스 장단점 장점 설계하고 구현하기가 쉽다. 100%의 확률로 정답을 구할 수 있다. 단점 알고리즘 실행 시간이 매우 오래 걸린다. 메모리 효율이 매우 떨어진다. 구조에 따른 브루트 포스의 2종류 선형 구조 - 순차 탐색 비선형 구조 .. 2022. 3. 9.
[Algorithm] Dynamic Programming(동적 계획법, 다이나믹 프로그래밍) Dynamic Programming(동적 계획법, 다이나믹 프로그래밍) 응용 수학자 리차드 벨만(Richard Bellman)이 1953년에 고안한 알고리즘 큰 문제를 간단한 여러 개의(작은) 문제(Overlapping Subproblem)로 나누어 해결한 결과를 저장해뒀다가 나중에 큰 문제의 결과와 합하여 풀이하는 알고리즘 즉, 이미 해결한 (작은) 문제의 결과는 저장해 두었다가 다시 계산하지 않도록 하는 알고리즘 부분 하위 문제(Overlapping Subproblem; 중복 부분 문제) 동일한 작은 문제를 반복적으로 해결 최적 부분 구조(Optimal Substructure) 큰 문제를 작은 문제로 나눌 수 있으며, 작은 문제의 답을 모아서 큰 문제를 해결 Algorithm 특징 대표적인 문제 다이.. 2021. 12. 19.
[Python(파이썬)] 파이썬 공백 제거 (strip, replace) 파이썬에서 문자열 공백을 제거하는 2가지 방법 1. 문자열.strip() 2. 문자열.replace(old, new) 1. 문자열.strip() strip함수는 양쪽 끝에 있는 공백 or 매개변수을 제거하는 함수이다. 양쪽 끝에 있는 공백 or 매개변수을 제거한 후 공백을 제거한 새로운 문자열을 반환한다. 따라서 모든 공백을 제거하지 못하고 문자열 양 끝에 있는 공백만 제거할 수 있다. strip, rstrip, lstrip strip() - 문자열 양쪽(오른쪽, 왼쪽) 공백 or 매개변수 삭제 rstrip() - 문자열 오른쪽 공백 or 매개변수 삭제 lstrip() - 문자열 왼쪽 공백 or 매개변수 삭제 공백이 제거되었는지 쉽게 확인하기 위해 list형태로 바꾸어 출력했다. # 공백있는 문자열 >>.. 2021. 12. 1.
[Python(파이썬)] 이차원 리스트 입력 받기 [Python(파이썬)] 입력, 출력 (input(), print()) 입력 - input() 파이썬에서는 기본적으로 input()을 사용하여 입력 받는다. >>> input() Hello # 출력 'Hello' >>> input() 123 # 출력 '123' 입력받은 값을 변수에 대입하기 >>> a = input() # 입력한 값을 a에.. young-library.tistory.com [Python(파이썬)] 다양하게 입력받기 [input(), sys.stdin.readline(), strip(), ...] 1. input() input()은 기본적인 파이썬 .. 2021. 12. 1.
[Python(파이썬)] 다양하게 입력받기 [input(), sys.stdin.readline(), strip()] 1. input() input()은 기본적인 파이썬 입력 방법이다. input으로 입력받으면 기본적으로 str 타입으로 저장된다. 또한 list()를 사용하면 문자열을 하나하나 분리해 리스트로 만들어준다. >>> a = input() abcde >>> a 'abcde' >>> list(a) ['a', 'b', 'c', 'd', 'e'] >>> test = input() Hello Hi >>> test 'Hello Hi' >>> list(test) ['H', 'e', 'l', 'l', 'o', ' ', 'H', 'i'] 나머지 input에 대한 설명은 아래 링크에 있다. [Python(파이썬)] 입력, 출력 (input(), print()) 입력 - input() 파이썬에서는 기본적으로 input()을 사.. 2021. 12. 1.
[Python(파이썬)] 입력, 출력 (input(), print()) 입력 - input() 파이썬에서는 기본적으로 input()을 사용하여 입력 받는다. >>> input() Hello # 출력 'Hello' >>> input() 123 # 출력 '123' 입력받은 값을 변수에 대입하기 >>> a = input()# 입력한 값을 a에 대입하기 # 엔터를 누르면 커서가 깜빡인다. 그럼 아래와 같이 3을 입력한다 3 >>> a '3' # 입력하세요: 옆에 커서 깜빡이면 입력 >>> test = input('아무거나 입력하세요: ') 아무거나 입력하세요: 가나다라 >>> test '가나다라' input() 괄호 안에 '아무거나 입력하세요: '와 같이 문자열을 포함하면 입력 받을 때 안내 문구(괄호 안에 작성한 문자열)가 출력된다. 이 출력된 문구를 통해 사용자는 입력해야 하는.. 2021. 12. 1.