분류 전체보기
-
이진 탐색(Binary Search)알고리즘 2023. 3. 2. 22:53
1. 이진 탐색(Binary Search)란? 정렬된 리스트를 반으로 나누어 필요한 부분으로 범위를 제한하여 값을 찾아가는 방식 찾고자 하는 범위가 넓은 경우 매우 효율적으로 사용이 가능 2. 이진 탐색(Binary Search)조건 원소가 오름차순이든 내림차순이든 정렬이 되어있어야 한다. 원소에 랜덤으로 값을 접근할 수있어야 한다. 3. 이진 탐색(Binary Search)특징 이진 탐색을 사용하면 일반적인 선형 탐색을 시행하는 것에 비해서 시간 복잡도가 훨씬 줄어든다. 적은 양의 데이터의 경우 모든 값들을 탐색하는데 그렇게 많은 시간이 소요되진 않는다. 하지만 데이터의 갯수가 100만개 이상 등 많은 데이터들 중에서 내가 원하는 값을 찾는 경우 선형 탐색의 경우는 1~100만 까지 모든 수를 탐색해보..
-
14425. [Python]문자열 집합Python_알고리즘/Silver III 2023. 3. 1. 00:15
1. 문제 https://www.acmicpc.net/problem/14425 14425번: 문자열 집합 첫째 줄에 문자열의 개수 N과 M (1 ≤ N ≤ 10,000, 1 ≤ M ≤ 10,000)이 주어진다. 다음 N개의 줄에는 집합 S에 포함되어 있는 문자열들이 주어진다. 다음 M개의 줄에는 검사해야 하는 문자열들이 주어 www.acmicpc.net 2. 접근 방법 시간 제한: 2초 메모리 제한: 1536MB 탐색 3. 파이썬 코드 import sys input = sys.stdin.readline N,M = map(int,input().split()) # 갯수 세는 변수 cnt = 0 # 체크할 리스트 check_list = [] # 단어 저장리스트 word_list= [] for _ in rang..
-
2108. [Python]통계학Python_알고리즘/Silver III 2023. 2. 25. 00:14
1. 문제 https://www.acmicpc.net/problem/2108 2108번: 통계학 첫째 줄에 수의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 단, N은 홀수이다. 그 다음 N개의 줄에는 정수들이 주어진다. 입력되는 정수의 절댓값은 4,000을 넘지 않는다. www.acmicpc.net 2. 접근 방법 시간 제한: 2초 메모리 제한: 256MB 구현 정렬 3. 파이썬 코드 import sys input = sys.stdin.readline N = int(input()) # sys.maxsize 사용할 경우 python 에서 낼 수 있는 최대값을 불러올 수 있다고 한다. min_value = sys.maxsize max_value = -sys.maxsize # 모든 값들을 더해줄 변수..
-
DP(Dynamic Programming) 동적 프로그래밍알고리즘 2023. 2. 15. 16:57
1. DP(Dynamic Programming) 이란? 각각의 작은 문제들을 해결한 값들을 저장하여 나중의 큰 문제를 해결할 때 결과들을 합산하여 구하는 것 메모리를 많이 사용하는 대신 연산 속도를 높여준다. 2. DP(Dynamic Programming) 조건 DP(Dynamic Programming)은 작은 값들을 기억했다가 큰 문제를 해결할 때 그 값들을 활용하여 푸는 구조를 가지고 있다. 조건으로는 아래 두 조건을 만족해야 적용할 수 있다. 부분 최적 구조 : 작은 문제의 결과를 모아서 큰 문제를 해결할 수 있는 구조 중복되는 부분 문제 : 동일한 작은 문제들을 반복적으로 해결할 수 있어야 한다. 3. DP(Dynamic Programming) 특징 DP는 메모리를 많이 사용한다고 말을 했는데 이..
-
10799. [Python]쇠막대기Python_알고리즘/Silver II 2023. 2. 13. 00:44
1. 문제 https://www.acmicpc.net/problem/10799 10799번: 쇠막대기 여러 개의 쇠막대기를 레이저로 절단하려고 한다. 효율적인 작업을 위해서 쇠막대기를 아래에서 위로 겹쳐 놓고, 레이저를 위에서 수직으로 발사하여 쇠막대기들을 자른다. 쇠막대기와 레이저 www.acmicpc.net 2. 접근 방법 시간 제한: 1초 메모리 제한: 256MB 스택 3. 파이썬 코드 # input 문자열 info = input() # 문자를 담을 리스트 stack = [] # 갯수 체크 cnt = 0 # enumerate 로 index와 value 값을 가져옴 for i,v in enumerate(info): # 여는 괄호일 경우 if v == "(": # 스택에 index 값 추가 stack...
-
1463. [Python]1로 만들기Python_알고리즘/Silver III 2023. 2. 11. 22:51
1. 문제 https://www.acmicpc.net/problem/1463 1463번: 1로 만들기 첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다. www.acmicpc.net 2. 접근 방법 시간 제한: 0.15초 (python 3 => 1.5초) 메모리 제한: 128MB DP(Dynamic Programming) 3. 파이썬 코드 def answer(num): # 0, 1 인 경우는 count 되는 값이 없어서 0 # 2, 3 인 경우는 한번씩 나누는 값 1이다. # 외의 10^6 까지 값이 존재하므로 10^6+1 갯수 리스트 생성 num_list = [0,0,1,1] + [0]*(10**6-2) # 4부터 시작하는 반복문 생셩 for i in range(4, 10**6..
-
3.6 장React/실전 리액트 프로그래밍 2023. 2. 10. 21:30
3.6 리액트 내장 훅 살펴보기 다양한 내장된 훅들을 제공한다. 3.6.1 Consumer 컴포넌트 없이 콘텍스트 사용하기 : useContext ContextAPI에서 Consumer 사용없이 Provider로 부터 전달된 값을 사용할 수 있다. function Childcomponent() { const user = useContext(UserContext) } 사용하기 간편한 장점이 있다. 3.6.2 렌더링과 무관한 값 저장하기 : useRef 컴포넌트 내부에서 생성되는 값 중 렌더링과 무관한 현재 쓰지않는 값을 저장한 후 나중에 사용하기 위해 사용한다. 이전 상태를 저장했다가 원하는 곳에 사용하는데 사용됨. 3.6.3 메모제이션 훅 : useMemo, useCallback useMemo 와 use..
-
3.5 장React/실전 리액트 프로그래밍 2023. 2. 10. 21:25
3.5 Ref 속성값으로 자식 요소에 접근하기 돔 요소에 직접 접근해야 할 때 사용한다. Ref(Reference)를 사용하면 자식 요소에 직접 접근할 수 있고, 요소에 포커스를 주거나 요소의 크기 및 스크롤 위치 등을 알 수 있다. 3.5.1 ref 속성값 이해하기 function TextInput() { const inputRef = useRef; useEffect(() => { inputRef.current.focus(); }, []); return ( 저장 ); } useRef 훅을 사용하여 반환된 ref 객체를 통해 자식 요소의 ref 속성값에 객체를 넣는다. 돔 요소 혹은 컴포넌트가 생성되면 ref 객체로 접근이 가능하다. 컴포넌트의 렌더링 결과가 돔에 반영된 후에 호출해오기 때문에 이미 요소..
-
2869. [Python]달팽이는 올라가고 싶다.Python_알고리즘/Bronze I 2023. 2. 10. 21:23
1. 문제 https://www.acmicpc.net/problem/2869 2869번: 달팽이는 올라가고 싶다 첫째 줄에 세 정수 A, B, V가 공백으로 구분되어서 주어진다. (1 ≤ B < A ≤ V ≤ 1,000,000,000) www.acmicpc.net 2. 접근 방법 시간 제한: 0.25초 메모리 제한: 128MB 규칙 찾기 3. 파이썬 코드 import math # 하루에 오르는 높이, 내려가는 높이, 정상의 높이를 변수로 받음 A, B, V = map(int,input().split()) # 오르고 내려오는 높이의 차이가 1인 경우 최종 높이에서 내려오는 높이를 뺴준 값이 답이된다. if (A-B) == 1: print(V-B) # 그 외의 경우 정상 높이에서 오를 수 있는 오전에 오를 ..
-
2493. [Python]탑Python_알고리즘/Gold V 2023. 2. 6. 21:13
1. 문제 https://www.acmicpc.net/problem/2493 2493번: 탑 첫째 줄에 탑의 수를 나타내는 정수 N이 주어진다. N은 1 이상 500,000 이하이다. 둘째 줄에는 N개의 탑들의 높이가 직선상에 놓인 순서대로 하나의 빈칸을 사이에 두고 주어진다. 탑들의 높이는 1 www.acmicpc.net 2. 접근 방법 시간 제한: 1.5초 메모리 제한: 128MB 스택 3. 파이썬 코드 # 정답 코드 import sys input = sys.stdin.readline N = int(input()) # 타워들의 리스트를 받아옴 tower_list = list(map(int,input().split())) # 정답을 출력할 리스트 생성 ans_list = [0]*N # stack 리스트..