[백준][Python] 2506번 점수계산 - 코팩
·
백준/그리디
https://www.acmicpc.net/problem/2506 2506번: 점수계산 OX 문제는 맞거나 틀린 두 경우의 답을 가지는 문제를 말한다. 여러 개의 OX 문제로 만들어진 시험에서 연속적으로 답을 맞히는 경우에는 가산점을 주기 위해서 다음과 같이 점수 계산을 하기로 www.acmicpc.net 풀이 단순한 그리디 문제이기에 풀어주면 됩니다. # 2506번 점수계산 T = int(input()) score = list(map(int, input().split())) cnt = 0 # 연속된 점수일 경우 더해준다. answer = [] for i in score: if i == 1: answer.append(1 + cnt) cnt += 1 elif i == 0: answer.append(0) c..
[백준] 13458번 시험감독 - 파이썬
·
백준/그리디
https://www.acmicpc.net/problem/13458 13458번: 시험 감독 첫째 줄에 시험장의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 각 시험장에 있는 응시자의 수 Ai (1 ≤ Ai ≤ 1,000,000)가 주어진다. 셋째 줄에는 B와 C가 주어진다. (1 ≤ B, C ≤ 1,000,000) www.acmicpc.net 풀이 단순한 그리디 문제이기에 문재의 설명에 맞게 써주면된다. # 13456번 시험감독 # 총감독관, 부감독관 사람 수 파악하 import sys input = sys.stdin.readline test = int(input()) # 시험장 개수, int화 시켜서 줄 개행(이스케이프 코드) 제거 students = list(map(int, ..
[백준] 2869번 최대공약수와 최소공배수 - 파이썬
·
백준/그리디
https://www.acmicpc.net/problem/2609 2609번: 최대공약수와 최소공배수 첫째 줄에는 입력으로 주어진 두 수의 최대공약수를, 둘째 줄에는 입력으로 주어진 두 수의 최소 공배수를 출력한다. www.acmicpc.net 문제 두 개의 자연수를 입력받아 최대 공약수와 최소 공배수를 출력 입력 첫번째 줄 => a, b 자연수 입력 풀이 1, 직접 최대공약수와 최소공배수를 구하는 법 유클리드 호제법을 통해서 문제 풀이가 가능하다. a, b = map(int, input().split()) def gcd(a, b): while b > 0: a, b = b, a % b return a def lcm(a, b): return a * b // gcd(a, b) print(gcd(a, b)) ..
[백준] 1700번 멀티탭 스케줄링 - 파이썬
·
백준/그리디
https://www.acmicpc.net/problem/1700 1700번: 멀티탭 스케줄링 기숙사에서 살고 있는 준규는 한 개의 멀티탭을 이용하고 있다. 준규는 키보드, 헤어드라이기, 핸드폰 충전기, 디지털 카메라 충전기 등 여러 개의 전기용품을 사용하면서 어쩔 수 없이 각종 전 www.acmicpc.net 문제 N구 멀티탭으로 K번의 전자제품 사용을 주어진 순서에 맞게 행동해야한다. 멀티탭에 꽂힌 전자제품을 뽑는 최소 횟수를 구하라 입력 첫번째 줄 => N: N구의 멀티탭 K: K번의 행위 두번째 줄 => K번의 행위들이 일렬로 출력 풀이 일단 전자제품을 모두 꽂는게 우선이다. 멀티탭이 비어있다면 주어진 순서에 따라 전자제품을 멀티탭에 꽂는다. 만일 꽂으려는 전자제품이 이미 멀티탭에 꽂혀있다면 전자..
[백준] 1080번 행렬 - 파이썬
·
백준/그리디
https://www.acmicpc.net/problem/1080 1080번: 행렬 첫째 줄에 행렬의 크기 N M이 주어진다. N과 M은 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 행렬 A가 주어지고, 그 다음줄부터 N개의 줄에는 행렬 B가 주어진다. www.acmicpc.net 문제 2개의 행렬이 같아질 수 있게 첫번째 행렬의 임의의 3x3 구역을 1 -> 0, 0 -> 1로 바꿔주어 같게만들어주는것이 목표다. 임의의 3x3 구역을 바꿔주는것을 연산이라 한다. 입력 첫번째 줄 => N: 행렬의 세로 길이, M: 행렬의 가로 길이 두번째 줄 => 세로 길이가 N이고 가로길이가 M인 2개의 행렬들이 주어진다. 출력 두 행렬이 같다면 사용된 연산의 최솟값 출력 두 행렬이 같지않다면 -1 출..
[백준] 1969번 DNA - 파이썬
·
백준/그리디
https://www.acmicpc.net/problem/1969 1969번: DNA DNA란 어떤 유전물질을 구성하는 분자이다. 이 DNA는 서로 다른 4가지의 뉴클레오티드로 이루어져 있다(Adenine, Thymine, Guanine, Cytosine). 우리는 어떤 DNA의 물질을 표현할 때, 이 DNA를 이루는 뉴클레오 www.acmicpc.net 풀이 Hamming Distance는 길이가 같은 두 DNA가 있을 때, 각 위치의 뉴클오티드 문자가 다른 것의 수이다. 이 문제에서 뉴클오티드 문자는 A, T, G, C 만 주어진다. Hamming Distance가 최소가 되는 문자를 찾으려면 가장 각 위치의 문자는 겹치는 부분이 적어야한다. 특히 문제에 나왔듯이 만약 겹치는 개수가 동일한 문자가 두..
[백준] 1946번 신입 사원 - 파이썬
·
백준/그리디
https://www.acmicpc.net/problem/1946 1946번: 신입 사원 첫째 줄에는 테스트 케이스의 개수 T(1 ≤ T ≤ 20)가 주어진다. 각 테스트 케이스의 첫째 줄에 지원자의 숫자 N(1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개 줄에는 각각의 지원자의 서류심사 성 www.acmicpc.net 풀이 신입사원으로 입사하기 위해서는 서류 성적, 면접 성적 둘 중에 하나라도 다른지원자한테 지면 안된다. 적어도 하나는 다른 지원자를 이겨야 신입사원이 될 수 있다. 고로 서류심사 성적으로 정렬해준 뒤 면접 성적으로 비교를 해준다. 서류심사 성적이 낮은 지원자는 자신보다 높은 서류심사 성적을 가진 지원자의 면접 성적을 앞서야한다. 서류심사 성적 순으로 정렬하기 위해 .sort..
[백준] 11399번 ATM - 파이썬
·
백준/그리디
https://www.acmicpc.net/problem/11399 11399번: ATM 첫째 줄에 사람의 수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 각 사람이 돈을 인출하는데 걸리는 시간 Pi가 주어진다. (1 ≤ Pi ≤ 1,000) www.acmicpc.net 풀이 가장 적은 시간의 통화를 앞세워서 통화를 시켜주면 최솟값을 구할 수 있다. 반복가능객체.sort()를 통해 오름차순으로 정렬해준 뒤 계산을 해주면 된다. # 11399번 ATM # 제일 적은 수가 가장 많이 더해져야한다. N = int(input()) num = list(map(int, input().split())) num.sort() count = 0 answer = 0 for i in num: count += i a..
개발자 성현
'백준/그리디' 카테고리의 글 목록 (2 Page)