전체 글
-
2740. [Python]행렬 곱셈Python_알고리즘/Silver V 2023. 3. 31. 20:27
1. 문제 https://www.acmicpc.net/problem/2740 2740번: 행렬 곱셈 첫째 줄에 행렬 A의 크기 N 과 M이 주어진다. 둘째 줄부터 N개의 줄에 행렬 A의 원소 M개가 순서대로 주어진다. 그 다음 줄에는 행렬 B의 크기 M과 K가 주어진다. 이어서 M개의 줄에 행렬 B의 원소 K개 www.acmicpc.net 2. 접근 방법 시간 제한: 1초 메모리 제한: 128MB 구현 3. 파이썬 코드 N,M = map(int,input().split()) # 첫번째 행렬 생성 matrix_1 = [] # 첫번째 행렬 값 입력 for _ in range(N): num_list = list(map(int,input().split())) matrix_1.append(num_list) L,K..
-
2535. [Python]아시아 정보올림피아드Python_알고리즘/Silver V 2023. 3. 29. 23:32
1. 문제 https://www.acmicpc.net/problem/2535 2535번: 아시아 정보올림피아드 첫 번째 줄에는 대회참가 학생 수를 나타내는 N이 주어진다. 단, 3 ≤ N ≤ 100이다. 두 번째 줄부터 N개의 줄에는 각 줄마다 한 학생의 소속 국가 번호, 학생 번호, 그리고 성적이 하나의 빈칸을 사 www.acmicpc.net 2. 접근 방법 시간 제한: 1초 메모리 제한: 128MB 정렬 구현 3. 파이썬 코드 N = int(input()) ans_list = [] for _ in range(N): # 인풋을 리스트 형태로 받아옴 answer = list(map(int,input().split())) # 인풋 리스트를 리스트에 추가 ans_list.append(answer) # 최대 ..
-
1817. [Python]짐 챙기는 숌Python_알고리즘/Silver V 2023. 3. 27. 23:13
1. 문제 https://www.acmicpc.net/problem/1817 1817번: 짐 챙기는 숌 첫째 줄에 책의 개수 N과 박스에 넣을 수 있는 최대 무게 M이 주어진다. N은 0보다 크거나 같고 50보다 작거나 같은 정수이고, M은 1,000보다 작거나 같은 자연수이다. N이 0보다 큰 경우 둘째 줄에 책 www.acmicpc.net 2. 접근 방법 시간 제한: 2초 메모리 제한: 128MB 구현 그리디 3. 파이썬 코드 N,M = map(int,input().split()) # 책이 0개일 경우 if N == 0: print(0) # 그 외의 경우 else: # 책 리스트 생성 book_list = list(map(int,input().split())) # 박스 리스트 생성 box_list =..
-
6.5장React/실전 리액트 프로그래밍 2023. 3. 10. 15:08
6.5 reselect 패키지로 선택자 함수 만들기 원본 데이터를 다양한 형태로 가공해서 사용할 수 있게 도와줌 리덕스 데이터를 리액트 컴포넌트에서 필요한 데이터로 가공하는 용도로 많이 사용 export const getTodoList = createSelector(getTodos, (todos) => todos.todoList.filter((todo) => !todo.isCompleted) ); createSelector를 사용하여 매개변수로 들어온 getTodos 값이 변하지 않으면 계산을 수행하지 않는다. 메모제이션 기능을 이용하여 이전값과 비교하여 변경되면 변경된값을 연산을 수행하고 아닌 경우 이전값을 그대로 사용한다. 상태값 외에도 속성값을 입력 받을 수 있다. // FriendMain expo..
-
6.4장React/실전 리액트 프로그래밍 2023. 3. 10. 15:05
6.4 리액트 상태값을 리덕스로 관리하기 리덕스는 JS를 사용하는 모든 곳에서 사용이 가능하다. 리액트의 컴포넌트 상태값과 리덕스의 상태값이 불변 객체이고 이는 변경 여부확인이 빨라 렌더링 속도가 향상된다. 리액트와 리덕스가 궁합이 잘 맞기때문에 자주 사용된다. 6.4.1 react-redux 패키지 없이 직접 구현하기 const reducer = combineReducers({ timeline : timelineReducer, friend: friendReducer }); const store = createStore(reducer); export default store; 스토어를 생성하여 객체를 내보내서 원하는 곳에서 사용가능하게 만든다. // TimelineMain.js const [, force..
-
1697. [Python]숨바꼭질Python_알고리즘/Silver I 2023. 3. 9. 13:13
1. 문제 https://www.acmicpc.net/problem/1697 1697번: 숨바꼭질 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 www.acmicpc.net 2. 접근 방법 시간 제한: 2초 메모리 제한: 128MB BFS (Queue) 3. 파이썬 코드 from collections import deque N,K = map(int,input().split()) # popleft 를 사용하기 위해 deque 를 사용 => deque 의 경우 popleft 사용해도 시간 복잡도가 O(1)인 것으로 암 queue = ..
-
이진 탐색(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는 메모리를 많이 사용한다고 말을 했는데 이..