그리디

BOJ 12904: A와 B❓문제 설명A와 B로만 이루어진 두 문자열 S, T를 입력 받고1. 문자열 뒤에 A 추가2. 문자열을 뒤집고, 뒤에 B 추가두 가지 규칙으로 S 문자열을 T로 변경할 수 있는지 여부(1, 0)를 판단하는 문제이다. ❗️문제 풀이S -> T 과정에는 특정 전제 조건 없이 A추가 / 뒤집은 후 B 추가를 진행해야 한다.반대로 T -> S 로 과정을 전환하면마지막 문자에 따라 A 제거 / B 제거 후 뒤집기로 if문을 사용하기 적합해진다.결과적으로, 제시된 과정을 반대로 수행해 답을 구했다.A 추가 => A 제거뒤집은 후 B 추가 => B 제거 후 뒤집기def reverse(str): return str[::-1]def AB(S, T): while len(T) > len(..
BOJ 13305: 주유소 ❓문제 설명n개의 지역을 일렬로 지나는데 필요한 가장 최소의 기름값을 구하는 문제이다.지역 간 거리와 각 지역에서의 기름값이 각각 리스트로 주어진다.시작 시점엔 기름이 존재하지 않고,기름은 무제한으로 담긴다 가정하에가장 최소의 비용을 써서 마지막 지역까지 도달하면 된다.❗️문제 풀이시작 시점엔 기름이 있지 않기 때문에, 두 번째 지역으로 가기 위한 최소한의 기름을 넣어야 한다.더불어, 주어진 리스트를 정렬하면 안되기에 최소 거리당 주유 금액을 저장하는 변수를 설정했다.import sysN = int(sys.stdin.readline())length_list = list(map(int, sys.stdin.readline().split()))price_list = list(map(..
BOJ 9009 : 피보나치 9009번: 피보나치입력 데이터는 표준입력을 사용한다. 입력은 T 개의 테스트 데이터로 구성된다. 입력의 첫 번째 줄에는 테스트 데이터의 수를 나타내는 정수 T 가 주어진다. 각 테스트 데이터에는 하나의 정수 nwww.acmicpc.net❓문제 설명✨제켄도르프의 정리 (Zeckendorf's Theorem)모든 양의 정수는 피보나치 수의 유일한 합의 표현으로 나타낼 수 있다.이때 최소 개수로 나타낼 경우, 피보나치 수는 연속적으로 나타나지 않는다.❗️문제 풀이이 이론에 착안하여 코드를 작성하였고 아래는 시행착오이다.import sysT = int(sys.stdin.readline())fibo = [0, 1]answer = [[]for i in range(T)]for i in ..
se0hyun
'그리디' 태그의 글 목록