문제풀이 245

[파이썬] [구현] 백준 20164 홀수 홀릭 호석

문제 https://www.acmicpc.net/problem/20164 20164번: 홀수 홀릭 호석 호석이는 짝수랑 홀수 중에서 이니셜이 같은 홀수를 더 좋아한다. 운전을 하던 호석이는 앞차의 번호판이 홀수로 가득할 때 사랑스러움을 느낄 정도이다. 전화번호도 홀수만 있고 싶다. 그렇게 www.acmicpc.net 코드 n=input().rstrip() maxValue=0 minValue=99999 def check(temp): c=0 for i in temp: if int(i)%2==1: c+=1 return c def recur(n,count): global maxValue global minValue # 길이가 1일 경우 max값, min값을 갱신 if len(n)==1: maxValue=max(..

문제풀이/구현 2023.05.08

[자바] [백트래킹] 백준 16508 전공책

문제 https://www.acmicpc.net/problem/16508 16508번: 전공책 곧 졸업을 앞둔 민호는 대학교 생활 동안 구매만 해놓고 한 번도 펴보지 않은 전공책에 먼지가 쌓여 있는 것을 보고는, 이 책들을 어떻게 처리해야 할지 고민 중이다. 열심히 고민한 끝에 민호는 www.acmicpc.net 코드 import java.util.*; import java.io.*; class Book{ int price; String title; public Book(int price, String title){ this.price=price; this.title=title; } } public class Main { static ArrayList arr = new ArrayList(); static..

문제풀이/기타 2023.04.28

[파이썬] [구현] 백준 17281 야구

문제 https://www.acmicpc.net/problem/17281 17281번: ⚾ ⚾는 9명으로 이루어진 두 팀이 공격과 수비를 번갈아 하는 게임이다. 하나의 이닝은 공격과 수비로 이루어져 있고, 총 N이닝 동안 게임을 진행해야 한다. 한 이닝에 3아웃이 발생하면 이닝이 종 www.acmicpc.net 코드 from itertools import permutations n=int(input()) array=[list(map(int, input().split())) for _ in range(n)] seq=list(permutations(range(1,9))) answer=0 for i in seq: result=0 # temp -> 타자 순서 temp=list(i) # 1번 선수 4번 타자로 t..

문제풀이/구현 2023.04.10

[파이썬] [그리디] 백준 1715 카드 정렬하기

문제 https://www.acmicpc.net/problem/1715 1715번: 카드 정렬하기 정렬된 두 묶음의 숫자 카드가 있다고 하자. 각 묶음의 카드의 수를 A, B라 하면 보통 두 묶음을 합쳐서 하나로 만드는 데에는 A+B 번의 비교를 해야 한다. 이를테면, 20장의 숫자 카드 묶음과 30장 www.acmicpc.net 코드 import heapq n=int(input()) array=[int(input()) for _ in range(n)] heapq.heapify(array) result=0 while len(array)>1: t1=heapq.heappop(array) t2=heapq.heappop(array) temp=t1+t2 result+=temp heapq.heappush(array..

[파이썬] [구현] 백준 14890 경사로

문제 https://www.acmicpc.net/problem/14890 14890번: 경사로 첫째 줄에 N (2 ≤ N ≤ 100)과 L (1 ≤ L ≤ N)이 주어진다. 둘째 줄부터 N개의 줄에 지도가 주어진다. 각 칸의 높이는 10보다 작거나 같은 자연수이다. www.acmicpc.net 코드 import sys input=sys.stdin.readline n,l=map(int, input().split()) array=[list(map(int, input().split())) for _ in range(n)] # 행별 열별로 길을 뽑아 내어 하나의 함수에서 해결할 수 있게 route 배열을 둠 route=[] for i in range(n): route.append(array[i]) for i i..

문제풀이/구현 2023.04.07

[파이썬] [DP] 백준 15988 1, 2, 3 더하기 3

문제 https://www.acmicpc.net/problem/15988 15988번: 1, 2, 3 더하기 3 각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 1,000,000,009로 나눈 나머지를 출력한다. www.acmicpc.net 코드 t=int(input()) #dp배열을 n의 방법의 수를 저장하는 것으로 사용 dp=[0]*1000001 dp[1]=1 dp[2]=2 dp[3]=4 # 예를 들어 n이 4인경우, dp[1]에서 3을 추가하는 경우, dp[2]에 2를 추가하는 경우, dp[3]에 1을 추가하는 경우만 존재 for i in range(4,1000001): dp[i]=(dp[i-1]+dp[i-2]+dp[i-3])%1000000009 for _ in range(..

문제풀이/DP 2023.04.07

[파이썬] [DP] 백준 11052 카드 구매하기

문제 https://www.acmicpc.net/problem/11052 11052번: 카드 구매하기 첫째 줄에 민규가 구매하려고 하는 카드의 개수 N이 주어진다. (1 ≤ N ≤ 1,000) 둘째 줄에는 Pi가 P1부터 PN까지 순서대로 주어진다. (1 ≤ Pi ≤ 10,000) www.acmicpc.net 코드 n=int(input()) array=[0]+list(map(int, input().split())) dp=[0]*(n+1) for i in range(len(array)): for j in range(i+1): dp[i]=max(dp[i],array[j]+dp[i-j]) print(dp[n]) 생각 정리 dp[n]은 n개의 최댓값을 저장하는 배열이다. dp[1] = array[1] dp[2]..

문제풀이/DP 2023.04.05

[파이썬] [그래프] 백준 16202 MST 게임

문제 https://www.acmicpc.net/problem/16202 16202번: MST 게임 첫 턴에 찾을 수 있는 MST는 총 5개의 간선 {(1, 3), (1, 2), (2, 4), (4, 6), (4, 5)}로 이루어져 있고, 비용은 16이다. 두 번째 턴에는 첫 턴에서 구한 MST에서 간선의 비용이 최소인 (2, 4)를 제거한 후 남아있 www.acmicpc.net 코드 n,m,k=map(int, input().split()) graph=[] parent=[] for i in range(n+1): parent.append(i) for i in range(1,m+1): a,b=map(int, input().split()) graph.append([a,b,i]) def find(x): if p..

[파이썬] [분할정복] 백준 1074 Z

문제 https://www.acmicpc.net/problem/1074 1074번: Z 한수는 크기가 2N × 2N인 2차원 배열을 Z모양으로 탐색하려고 한다. 예를 들어, 2×2배열을 왼쪽 위칸, 오른쪽 위칸, 왼쪽 아래칸, 오른쪽 아래칸 순서대로 방문하면 Z모양이다. N > 1인 경우, 배열을 www.acmicpc.net 코드 n,r,c=map(int, input().split()) count=0 def recur(n,nx,ny): global count # 출력 조건에 포함되면 출력하고 종료 if nx == r and ny==c: print(count) exit(0) # n이 1인데 출력조건에 포함되지 않으면 if n==1: count+=1 return # 해당 사분면에 포함 되지 않으면 elif ..

문제풀이/기타 2023.04.03