본문 바로가기

알고리즘

(11)
백준 알고리즘 문제 풀이 가이드: 코딩 면접 대비 완벽 준비-14916 거스름 돈 편(python) 문제 살펴보기!!문제 링크 : https://www.acmicpc.net/problem/14916솔루션 살펴보기!!import sysdef input(): return sys.stdin.readline().rstrip()N = int(input())# 동전을 사용할 수 없는 경우 먼저 처리if N == 1 or N == 3: ans = -1else: # 5원으로 최대한 나누고 나머지를 2원으로 처리 ct, N = divmod(N, 5) # 나머지가 짝수일 경우 if N % 2 == 0: ans = ct + N // 2 else: ans = ct + (N + 5) // 2 - 1print(ans)풀이전략1. 동전 교환의 기본 전략:동전의 단위는..
백준 알고리즘 문제 풀이 가이드: 코딩 면접 대비 완벽 준비-9613 GCD 합 편 (python) 문제 살펴보기!!문제 링크 : https://www.acmicpc.net/problem/9613솔루션 살펴보기!!import sysimport mathfrom itertools import combinations # 가능한 모든 쌍을 생성하기 위해 사용def main(): input = sys.stdin.read # 표준 입력을 한 번에 읽어옴 data = input().split() # 데이터를 공백 기준으로 분할하여 리스트로 저장 idx = 0 t = int(data[idx]) # 첫 번째 값은 테스트 케이스의 수 idx += 1 for _ in range(t): # 테스트 케이스의 수만큼 반복 n = int(data[idx]) # 현재 ..
백준 알고리즘 문제 풀이 가이드: 코딩 면접 대비 완벽 준비-1967 트리의 지름 편 (python) 문제 살펴보기!!문제 링크 : https://www.acmicpc.net/problem/1967솔루션 살펴보기!!import sysfrom collections import defaultdictdef main(): sys.setrecursionlimit(1000000) # 재귀 호출 제한을 크게 설정 (큰 트리 처리 가능) input = sys.stdin.read data = input().split() idx = 0 n = int(data[idx]) # 노드 수 입력 받음 idx += 1 if n == 1: # 노드가 1개인 경우, 트리의 지름은 0 print(0) return adj = defaultdict(list) ..
시스템 효율을 극대화하는 8가지 로드 밸런싱 알고리즘의 비밀 현대의 IT 인프라에서는 사용자 요구에 빠르게 대응하고 시스템의 안정성을 유지하는 것이 무엇보다 중요합니다. 이때 핵심적인 역할을 하는 것이 바로 로드 밸런싱입니다. 로드 밸런싱은 네트워크 트래픽을 여러 서버에 고르게 분산시켜 서버의 과부하를 방지하고, 시스템의 성능과 가용성을 향상시키는 기술입니다. 이러한 로드 밸런싱은 웹 서버, 데이터베이스 서버, 애플리케이션 서버 등 다양한 영역에서 필수적으로 사용되고 있습니다.이번 블로그에서는 대표적인 8가지 로드 밸런싱 알고리즘에 대해 상세히 알아보고, 각각의 특징과 동작 방식, 그리고 주의 사항에 대해 살펴보겠습니다.1. Round Robin (라운드 로빈)특징 및 동작 방식:라운드 로빈은 가장 간단하고 널리 사용되는 로드 밸런싱 알고리즘 중 하나입니다. 클라..
백준 알고리즘 문제 풀이 가이드: 코딩 면접 대비 완벽 준비-2800 괄호 제거 편 (python) 문제 살펴보기!!문제 링크 : https://www.acmicpc.net/problem/2800솔루션 살펴보기!!import sysdef input(): return sys.stdin.readline().rstrip()s = input()n = len(s)# 괄호 쌍 인덱스를 기록할 리스트와 스택 초기화bracket_index = [-1] * nstack = []pair_count = 0# 괄호 쌍에 번호를 기록for i, char in enumerate(s): if char == '(': stack.append(pair_count) bracket_index[i] = pair_count pair_count += 1 elif char == ')': ..
백준 알고리즘 문제 풀이 가이드: 코딩 면접 대비 완벽 준비-22942 데이터 체커 편 (python) 문제 살펴보기!!문제 링크 : https://www.acmicpc.net/problem/22942솔루션 살펴보기!!import sysdef main(): N = int(sys.stdin.readline()) # 원의 개수 입력 events = [] # 각 원의 시작점과 끝점을 저장할 리스트 # 원의 시작점과 끝점을 기록 for i in range(N): x, r = map(int, sys.stdin.readline().split()) events.append((x - r, i)) # 시작점 events.append((x + r, i)) # 끝점 # 시작점과 끝점을 x 좌표 기준으로 정렬 events.sort() active..
백준 알고리즘 문제 풀이 가이드: 코딩 면접 대비 완벽 준비-2504 괄호의 값 편 (python) 문제 살펴보기!!문제 링크 : https://www.acmicpc.net/problem/2504솔루션 살펴보기!!import sysdef input(): return sys.stdin.readline().rstrip()def is_valid_bracket_sequence(s): """괄호 유효성을 검사하는 함수""" stack = [] for ch in s: if ch in '([': stack.append(ch) elif ch == ')': if stack and stack[-1] == '(': stack.pop() else: return Fal..
백준 알고리즘 문제 풀이 가이드: 코딩 면접 대비 완벽 준비-1935 후위 표기식2 편 (python) 문제 살펴보기!!문제 링크 :https://www.acmicpc.net/problem/1935솔루션 살펴보기!!import sysdef input(): return sys.stdin.readline().rstrip()def postfix_evaluation(expression, values): operators = { '+': lambda b, a: a + b, '-': lambda b, a: a - b, '*': lambda b, a: a * b, '/': lambda b, a: a / b } stack = [] value_mapping = {} # 문자와 값을 매핑 value_iter = iter(v..