본문 바로가기

알고리즘

(32)
백준 알고리즘 문제 풀이 가이드: 코딩 면접 대비 완벽 준비-2217 로프 편(python) 문제 살펴보기!!문제 링크 : https://www.acmicpc.net/problem/2217솔루션 살펴보기!!import sysdef main(): input = sys.stdin.read data = input().split() N = int(data[0]) w = list(map(int, data[1:N+1])) # 무게 배열을 내림차순으로 정렬 w.sort(reverse=True) # 최대 무게 계산을 위한 변수 초기화 max_weight = 0 # 현재 무게와 그에 해당하는 최대 무게 계산 for i in range(N): current_weight = w[i] * (i + 1) # 최대값 비교..
백준 알고리즘 문제 풀이 가이드: 코딩 면접 대비 완벽 준비-1343 폴리오미노 편(python) 문제 살펴보기!!문제 링크 : https://www.acmicpc.net/problem/1343솔루션 살펴보기!!def cover_board(board): result = [] # 문자열 연결 시 리스트를 사용하여 성능 최적화 i = 0 n = len(board) while i 문제 풀이 전략이 문제는 주어진 문자열 board에서 연속된 'X' 문자를 특정 패턴의 타일로 덮는 문제입니다. 타일은 두 가지 종류가 있으며, 각각 다음과 같은 규칙을 따릅니다:타일 종류:'AAAA': 4개의 칸을 덮는 타일'BB': 2개의 칸을 덮는 타일해결해야 할 문제연속된 'X'를 모두 덮어야 하며, 덮을 수 없으면 "-1"을 반환합니다.'X'의 개수에 따라 가능한 한 많은 'AAAA' 타일을..
백준 알고리즘 문제 풀이 가이드: 코딩 면접 대비 완벽 준비-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. 동전 교환의 기본 전략:동전의 단위는..
백준 알고리즘 문제 풀이 가이드: 코딩 면접 대비 완벽 준비-2960 에라토스테네스의 체 편(python) 문제 살펴보기!!문제 링크 : https://www.acmicpc.net/problem/2960솔루션 살펴보기!!def find_kth_erased_number(N, K): erased = [False] * (N + 1) # 소수 판별 리스트. 0과 1은 사용하지 않음. count = 0 # 몇 번째 숫자가 지워졌는지 카운트 for P in range(2, N + 1): if not erased[P]: # P가 아직 지워지지 않았을 때 # P를 지움 (소수) erased[P] = True count += 1 # 지운 횟수 증가 if count == K: # K번째로 지운 수가 P라면 반환 ..
백준 알고리즘 문제 풀이 가이드: 코딩 면접 대비 완벽 준비-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]) # 현재 ..
백준 알고리즘 문제 풀이 가이드: 코딩 면접 대비 완벽 준비-21920 서로소 평균 편 (python) 문제 살펴보기!!문제 링크 : https://www.acmicpc.net/problem/21920솔루션 살펴보기!!import sysimport mathdef main(): input = sys.stdin.read().split() # 입력 데이터를 모두 읽고, 공백을 기준으로 나눔 ptr = 0 # 현재 읽고 있는 위치를 나타내는 포인터 N = int(input[ptr]) # 정수 N (리스트 A의 길이) ptr += 1 # 다음 포인터 위치로 이동 A = list(map(int, input[ptr:ptr + N])) # N개의 정수를 리스트 A로 저장 ptr += N # N개의 숫자를 읽었으므로 포인터 이동 X = int(input[ptr]) # 비교..
백준 알고리즘 문제 풀이 가이드: 코딩 면접 대비 완벽 준비-4134 다음 소수 편 (python) 문제 살펴보기!!문제 링크 : https://www.acmicpc.net/problem/4134솔루션 살펴보기!!def is_prime(n): # n이 2보다 작으면 소수가 아님 if n = n: continue x = pow(a, d, n) if x == 1 or x == n - 1: continue # 제곱을 반복하여 소수 여부를 판정 for _ in range(s - 1): x = pow(x, 2, n) if x == n - 1: break else: return False ..
백준 알고리즘 문제 풀이 가이드: 코딩 면접 대비 완벽 준비-5347 LCM 편 (python) 문제 살펴보기!!문제 링크 : https://www.acmicpc.net/problem/5347솔루션 살펴보기!!import mathdef gcd(a, b): return b if a == 0 else gcd(b % a, a)def lcm(a, b): return a * b // math.gcd(a, b)def main(): t = int(input()) for _ in range(t): a, b = map(int, input().split()) print(lcm(a, b))if __name__ == "__main__": main()코드 풀이 전략유클리드 호제법을 이용한 GCD 계산: 주어진 두 수의 최대 공약수(GCD)를 구하기 위해 유클리드 호제법을..