본문 바로가기
728x90

코딩테스트/백준11

14567번: 선수과목 https://www.acmicpc.net/problem/14567 14567번: 선수과목 (Prerequisite) 3개의 과목이 있고, 2번 과목을 이수하기 위해서는 1번 과목을 이수해야 하고, 3번 과목을 이수하기 위해서는 2번 과목을 이수해야 한다. www.acmicpc.net 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 n,m = map(int,input().split()) #dp값은 최소 몇학기 인지 dp = [1] * (n) #인덱스번호가 과목번호, 안에 든 값들은 선수과목 번호 array = [[]for i in range(n)] for i in range(m): a, b = map(int,input().split()) array[b-1].. 2022. 11. 18.
21312번 홀짝 칵테일 https://www.acmicpc.net/problem/21312 21312번: 홀짝 칵테일 정진이는 특별한 음료를 가지고 있다. 음료들은 정수로 표현되는 고유 번호를 가지고 있다. 정진이는 이 음료들을 섞어 만든 칵테일을 만든다. 이 칵테일은 홀짝 칵테일이라 부르는데, 홀짝 칵 www.acmicpc.net 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 #a,b,c를 리스트로 저장 array = list(map(int,input().split())) #곱한값들 저장할 빈 리스트 count = [] #가능한 모든 수 for i in range(3): count.append(array[i]) for i in range(3): if i .. 2022. 11. 18.
1018 https://www.acmicpc.net/problem/1018 1018번: 체스판 다시 칠하기 첫째 줄에 N과 M이 주어진다. N과 M은 8보다 크거나 같고, 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 보드의 각 행의 상태가 주어진다. B는 검은색이며, W는 흰색이다. www.acmicpc.net 이 문제는 브루트포스 유형이다. 모든 경우의 수를 구해야 하는 문제인데 어떻게 해야 할지 감이 안 잡히는 문제였다. https://god-gil.tistory.com/62 [백준 알고리즘/python] 백준 1018번 체스판 다시 칠하기, 파이썬 설명 백준 알고리즘의 브루트 포스 단계, 1018번 체스판 다시 칠하기를 파이썬으로 풀어보았다. 문제 출처 https://www.acmicpc.n.. 2022. 8. 30.
1436 https://www.acmicpc.net/problem/1436 1436번: 영화감독 숌 666은 종말을 나타내는 숫자라고 한다. 따라서, 많은 블록버스터 영화에서는 666이 들어간 제목을 많이 사용한다. 영화감독 숌은 세상의 종말 이라는 시리즈 영화의 감독이다. 조지 루카스는 스타 www.acmicpc.net n = int(input()) six_number='666' number = 0 cnt = 0 while True: number +=1 if six_number in str(number): cnt += 1 if cnt == n: break print(number) 2022. 8. 25.
11722 11722번: 가장 긴 감소하는 부분 수열 (acmicpc.net) 2022. 8. 22.
9095 9095번: 1, 2, 3 더하기 (acmicpc.net) 9095번: 1, 2, 3 더하기 각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 출력한다. www.acmicpc.net 2022. 8. 22.
11729 https://www.acmicpc.net/problem/11729 11729번: 하노이 탑 이동 순서 세 개의 장대가 있고 첫 번째 장대에는 반경이 서로 다른 n개의 원판이 쌓여 있다. 각 원판은 반경이 큰 순서대로 쌓여있다. 이제 수도승들이 다음 규칙에 따라 첫 번째 장대에서 세 번째 장대로 www.acmicpc.net n = int(input()) def hanoi(n, a, b, c): if n == 1: print(a, c) else: hanoi(n - 1, a, c, b) print(a, c) hanoi(n - 1, b, a, c) sum = 1 for i in range(n - 1): sum = sum * 2 + 1 print(sum) hanoi(n, 1, 2, 3) 하노이는 코드로 구현하는.. 2022. 8. 18.
1149 https://www.acmicpc.net/problem/1149 1149번: RGB거리 첫째 줄에 집의 수 N(2 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 각 집을 빨강, 초록, 파랑으로 칠하는 비용이 1번 집부터 한 줄에 하나씩 주어진다. 집을 칠하는 비용은 1,000보다 작거나 www.acmicpc.net rows = int(input()) # 원하는 줄의 갯수를 입력 rgb = [] #RGB값을 입력할 빈 리스트 생성 for i in range(rows): rgb.append(list(map(int, input().split()))) for i in range(1, len(rgb)): #RED rgb[i][0] = min(rgb[i - 1][1], rgb[i - 1][2]) .. 2022. 8. 18.
2839 https://www.acmicpc.net/problem/2839 a = [] count = 0 n = int(input()) if n%5 == 0: #나눴을 때 나머지가 0이면 5로 나눈 값을 a에 저장 a.append(int(n/5)) count += 1 for n_5_div in range(0, int(n/5)+1): #처음에 5를 0~ 5나누기의 몫까지 차례대로 n을 나눔 c = n-(5*n_5_div) for c_3_div in range(0, int(c/3)+1): # 5로 나눈 값에대가 3을 또 나눈 몫까지 차례대로 c를 나눔 if c%3 == 0: a.append(n_5_div + int(c/3)) count += 1 if count == 0: a.append(-1) print(min(a)) 2022. 8. 17.
2798번 https://www.acmicpc.net/problem/2798 2798번: 블랙잭 첫째 줄에 카드의 개수 N(3 ≤ N ≤ 100)과 M(10 ≤ M ≤ 300,000)이 주어진다. 둘째 줄에는 카드에 쓰여 있는 수가 주어지며, 이 값은 100,000을 넘지 않는 양의 정수이다. 합이 M을 넘지 않는 카드 3장 www.acmicpc.net from itertools import combinations n, m = map(int,input().split()) number = map(int,input().split()) number_sum = [] for i in combinations(number, 3): number_sum.append(sum(i)) number_sum.sort() for i in n.. 2022. 8. 14.
2217번 https://www.acmicpc.net/problem/2217 2217번: 로프 N(1 ≤ N ≤ 100,000)개의 로프가 있다. 이 로프를 이용하여 이런 저런 물체를 들어올릴 수 있다. 각각의 로프는 그 굵기나 길이가 다르기 때문에 들 수 있는 물체의 중량이 서로 다를 수도 있다. 하 www.acmicpc.net N= int(input()) k = [] for i in range(N): k.append(int(input())) k.sort() k_max = [] for i in range(N): k_max.append(k[i]*(len(k)-i)) print(max(k_max)) 2022. 8. 14.
728x90