분류 전체보기
-
[파이썬/Python] 7568번 덩치Algorithm/Baekjoon 2024. 6. 11. 17:26
문제https://www.acmicpc.net/problem/7568 코드import sysinput = sys.stdin.readline# 입력받을 쌍의 개수n = int(input())# 쌍의 정수를 저장할 리스트 초기화data = []# 순위를 저장할 리스트 초기화ans = []# n개의 쌍을 입력받아 data 리스트에 저장for i in range(n): a, b = map(int, input().split()) data.append((a, b))# 각 쌍에 대해 다른 모든 쌍과 비교하여 순위를 매김for i in range(n): count = 0 for j in range(n): # (a, b)가 (c, d)보다 두 값 모두 작을 경우 카운트 증가 ..
-
[파이썬/Python] 4949번 균형잡힌 세상Algorithm/Baekjoon 2024. 6. 11. 16:10
문제https://www.acmicpc.net/problem/4949 코드import sysinput = sys.stdin.readlinewhile True: s = input().rstrip() if s == '.': break stack = [] # 괄호를 저장할 스택 balanced = True # 문자열의 괄호가 균형 잡혀 있는지 여부 # 문자열의 각 문자를 순회 for char in s: if char in '([': # 여는 괄호는 스택에 추가 stack.append(char) elif char == ')': # 닫는 소괄호를 만난 경우 if not stack or stack[..
-
[Algorithm] 그리디(Greedy) 알고리즘Algorithm/Concepts 2024. 6. 10. 18:31
그리디(Greedy) 알고리즘이란?최적의 해를 구하는 데에 사용되는 근사적인 방법이다.알고리즘의 기본 아이디어는 문제를 해결하는 과정에서 각 단계에서 가장 최적이라고 생각되는 선택을 하는 것이다. 시간복잡도그리디 알고리즘의 시간복잡도는 문제의 특성과 구체적인 알고리즘 구현에 따라 다르다. 거스름돈 문제:동전 단위가 미리 정렬되어 있고, 각 동전을 한 번씩 선택시간복잡도는 O(n)이다.여기서 n은 동전의 종류 수활동 선택 문제:활동을 종료 시간 기준으로 정렬한 후, 한 번의 순회로 선택시간복잡도는 O(n log n) (정렬) + O(n) (활동 선택) = O(n log n)최소 신장 트리 문제 (Kruskal 알고리즘):간선을 가중치 기준으로 정렬한 후, Union-Find 자료구조를 사용하여 사이클을 ..
-
[파이썬/Python] 2839번 설탕 배달Algorithm/Baekjoon 2024. 6. 10. 18:16
문제https://www.acmicpc.net/problem/2839 코드n = int(input())# 배달 가능한 봉지의 개수를 저장할 변수 초기화bg = 0while n >= 0: if n % 5 == 0: # 5kg 봉지로 나눌 수 있는 수를 bg에 더함 bg += n // 5 # 최종 봉지 개수를 출력하고 반복문을 종료 print(bg) break # n이 5로 나누어 떨어지지 않는다면 3kg 봉지 하나를 사용하고 n에서 3을 뺌 n -= 3 # 봉지 개수를 하나 증가 bg += 1# n이 음수가 되면 원하는 봉지 조합을 만들 수 없으므로 -1else: print(-1) 풀이기본적인 아이디어는 그리..
-
[Database] 데이터베이스의 종류Computer Science/Database 2024. 6. 3. 15:14
관계형 데이터베이스행과 열을 가지는 표 형식 데이터를 저장하는 형태의 데이터베이스SQL이라는 언어를 써서 조작MySQL, PostgreSQL, 오라클, SQL Server, MSSQL 등 MySQL대부분의 운영체제와 호환되며 현재 가장 많이 사용C, C++로 만들어짐모듈식 아키텍처 -> 스토리지 엔진을 쉽게 바꿀 수 있음쿼리 캐시 지원 PostgreSQLMySQL 다음으로 선호하는 데이터베이스디스크 조각이 차지하는 영역을 회수할 수 있음, VACUUMJSON으로도 데이터에 접근 가능 NoSQL 데이터베이스"Not only SQL" 이라는 슬로건에서 생겨난 데이터베이스SQL을 사용하지 않음MongoDB, redis 등 mongoDBJSON을 통해 데이터에 접근키-값 데이터 모델에서 확장된 도큐먼트 기반..
-
[파이썬/Python] 2751번 수 정렬하기 2Algorithm/Baekjoon 2024. 6. 3. 10:26
문제https://www.acmicpc.net/problem/2751 코드import sysinput = sys.stdin.readlinen = int(input())arr = [int(input()) for _ in range(n)] arr.sort()for i in arr: print(i) 풀이파이썬 내장 함수 sort()나 sorted()를 사용하면 쉽게 풀 수 있다.직접 정렬을 구현하고 싶다면 병합 정렬로 풀면 된다. 파이썬 내장 함수 참고https://ehdbs0903.tistory.com/entry/파이썬의-정렬-알고리즘은-어떤-알고리즘을-사용할까 파이썬의 정렬 알고리즘은 어떤 알고리즘을 사용할까?백준 문제를 풀다가 문득 궁금한 점이 생겼다.많은 정렬 알고리즘이 있는데, lis..
-
[Database] 트랜잭션과 무결성Computer Science/Database 2024. 5. 30. 15:18
트랜잭션트랜잭션은 데이터베이스에서 하나의 논리적 기능을 수행하기 위한 작업의 단위를 말한다. 데이터베이스에 접근하는 방법은 쿼리이므로, 여러 개의 쿼리들을 하나로 묶는 단위를 말한다. 트랜잭션의 특징원자성트랜잭션이 데이터베이스에 모두 반영되거나 반영되지 않아야 함트랜잭션을 커밋했는데, 문제가 발생하여 롤백하는 경우 그 이후에 모두 수행되지 않음을 보장해야 함커밋과 롤백: 데이터의 무결성 보장커밋(Commit): 모든 부분작업이 정상적으로 완료하면 이 변경사항을 한꺼번에 DB에 반영함롤백(Rollback): 부분 작업이 실패하면 트랜잭션 실행 전으로 되돌림일관성트랜잭션의 작업 처리 결과는 항상 일관성이 있어야 함고립성트랜잭션 수행 시 다른 트랜잭션의 작업이 끼어들지 못하도록 보장해야 함지속성성공적으로 수..
-
[파이썬/Python] 2164번 카드2Algorithm/Baekjoon 2024. 5. 29. 15:22
문제https://www.acmicpc.net/problem/2164 코드from collections import dequen = int(input())queue = deque([i for i in range(1, n+1)])# 하나의 요소가 남을 때까지 반복while n > 1: queue.popleft() # 덱의 가장 앞에 있는 요소를 제거 queue.append(queue.popleft()) # 다음 요소를 덱의 뒤로 옮김 n -= 1print(queue[0]) 풀이이 문제는 n명이 원을 이루어 앉고, 특정 규칙에 따라 사람을 제거해 가면서 마지막으로 남는 사람을 찾는 요세푸스 문제와 같다. https://www.acmicpc.net/problem/1158 # 하나의 요소..