본문 바로가기
반응형

알고리즘 풀이/백준125

[백준 2012] 등수 매기기(python) https://www.acmicpc.net/problem/2012 2012번: 등수 매기기 첫째 줄에 자연수 N이 주어진다. (1 ≤ N ≤ 500,000) 둘째 줄부터 N개의 줄에 걸쳐 각 사람의 예상 등수가 순서대로 주어진다. 예상 등수는 500,000 이하의 자연수이다. www.acmicpc.net 등수 매기기 문제 자기가 예상한 등수와 실제 등수가 다를 때의 불만도가 둘의 차이일 때 최소값을 구하는 문제 정렬해서 비교하면 쉽게 풀어낼 수 있다. ⚙️내가 푼 정답코드 import sys N = int(sys.stdin.readline()) rank = sorted([int(sys.stdin.readline()) for _ in range(N)]) # 정렬해서 받기 cnt = 0 for i in ra.. 2023. 3. 28.
[백준 1158] 요세푸스 문제 (python) https://www.acmicpc.net/problem/1158 1158번: 요세푸스 문제 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 5,000) www.acmicpc.net 요세푸스 문제 순서대로 이루어진 원형에서 순서대로 게속해서 K번째 숫자를 제거해서 모두 제거될 때까지 반복하는 문제 큐의 개념을 알고 있다면 간단하게 해결 할 수 있다. ⚙️내가 푼 정답코드 import sys from collections import deque N, K = map(int, sys.stdin.readline().split()) queue = deque([i for i in range(1,N+1)]) print(" 2023. 3. 27.
[백준 1946] 신입 사원 (python) https://www.acmicpc.net/problem/1946 1946번: 신입 사원 첫째 줄에는 테스트 케이스의 개수 T(1 ≤ T ≤ 20)가 주어진다. 각 테스트 케이스의 첫째 줄에 지원자의 숫자 N(1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개 줄에는 각각의 지원자의 서류심사 성 www.acmicpc.net 신입 사원 문제 성적, 서류 등수가 다른 지원자보다 떨어지면 탈락이고, 그렇지 않으면 합격일 때 최대 가능한 합격자 수를 구해보자. ⚙️내가 푼 정답코드 import sys T = int(sys.stdin.readline()) for _ in range(T): N = int(sys.stdin.readline()) rank = sorted([list(map(int, sys.st.. 2023. 3. 27.
[백준 11443] 짝수번째 피보나치 수의 합 (python) https://www.acmicpc.net/problem/11443 11443번: 짝수번째 피보나치 수의 합 첫째 줄에 n이 주어진다. n은 1,000,000,000,000,000,000보다 작거나 같은 자연수이다. www.acmicpc.net 짝수번째 피보나치 수의 합 문제 짝수번째 피보나치 수들의 합을 구하는 문제 분할 정복으로 피보나치 수들의 합을 구하고 짝수번쨰 피보나치 수의 규칙을 찾아보자. ⚙️내가 푼 정답코드 import sys N = int(sys.stdin.readline()) x = [[1,1],[1,0]] def mult(a,b): # 행렬의 곱을 구하자 A = [[0,0],[0,0]] # 2차원 행렬 for i in range(2): for j in range(2): for k in.. 2023. 3. 27.
[백준 11442] 홀수번째 피보나치 수의 합 (python) https://www.acmicpc.net/problem/11442 11442번: 홀수번째 피보나치 수의 합 첫째 줄에 n이 주어진다. n은 1,000,000,000,000,000,000보다 작거나 같은 자연수이다. www.acmicpc.net 홀수번째 피보나치 수의 합 문제 홀수번째 피보나치 수들의 합을 구하는 문제 분할 정복으로 피보나치 수들의 합을 구하고 홀수번쨰 피보나치 수의 규칙을 찾아보자. ⚙️내가 푼 정답코드 import sys N = int(sys.stdin.readline()) x = [[1,1],[1,0]] def mult(a,b): # 행렬의 곱을 구하자 A = [[0,0],[0,0]] # 2차원 행렬 for i in range(2): for j in range(2): for k in.. 2023. 3. 27.
[백준 15311] 약 팔기 (python) https://www.acmicpc.net/problem/15311 15311번: 약 팔기 첫 번째 줄에 동규의 최대 약 요구량을 나타내는 정수 N ($=1\, 000\, 000$) 이 주어진다. www.acmicpc.net 약 팔기 문제 최대 2000개의 약봉지를 이용해서 1~1,000,000까지 숫자를 만들 수 있게 구현해보자 제목 그대로 은근 약팔이(?) 문제였고, 구현능력보단 아이디어가 중요한 문제 ⚙️내가 푼 정답코드 import sys N = int(sys.stdin.readline()) result = [] for i in range(1000): # 1000번의 result.append(1) # 1 for j in range(1000): # 1000번의 result.append(1000) #.. 2023. 3. 25.
반응형