실버3
-
문제 보기 : 15657번: N과 M (8) 문제정답률 : 81%작성 코드n,m = map(int, input().split())arr = list(map(int, input().split())) # 입력을 정수 리스트로 변환arr = sorted(set(arr)) # 중복 제거 및 정렬arr.sort()# 중복 없는 조합 생성 함수def combinations_without_replacement(n,new,c): answer = [] if len(new)==n: return [new] for i in range(c,len(arr)): answer.extend(combinations_without_replacement(n,new+[arr[i]],i)) ..
S3 15657. N과 M (8)문제 보기 : 15657번: N과 M (8) 문제정답률 : 81%작성 코드n,m = map(int, input().split())arr = list(map(int, input().split())) # 입력을 정수 리스트로 변환arr = sorted(set(arr)) # 중복 제거 및 정렬arr.sort()# 중복 없는 조합 생성 함수def combinations_without_replacement(n,new,c): answer = [] if len(new)==n: return [new] for i in range(c,len(arr)): answer.extend(combinations_without_replacement(n,new+[arr[i]],i)) ..
2024.12.30 -
문제 보기 : 1904번: 01타일 문제정답률 : 31%작성 코드 & 풀이 해설from itertools import permutations, combinations_with_replacement# 가능한 타일 조합 (00, 1)arr = ['00', '1']# 입력: 문자열의 길이str_length = int(input())# 가능한 결과를 저장할 집합 (중복 제거를 위해 set 사용)answer = set()# 1부터 str_length까지 조합의 길이를 증가시켜가며 처리for n in range(1, str_length + 1): # arr에서 중복 조합 생성 (길이가 n인 조합) for ls in combinations_with_replacement(arr, n): # 생..
S3 1904. 01타일문제 보기 : 1904번: 01타일 문제정답률 : 31%작성 코드 & 풀이 해설from itertools import permutations, combinations_with_replacement# 가능한 타일 조합 (00, 1)arr = ['00', '1']# 입력: 문자열의 길이str_length = int(input())# 가능한 결과를 저장할 집합 (중복 제거를 위해 set 사용)answer = set()# 1부터 str_length까지 조합의 길이를 증가시켜가며 처리for n in range(1, str_length + 1): # arr에서 중복 조합 생성 (길이가 n인 조합) for ls in combinations_with_replacement(arr, n): # 생..
2024.12.21 -
문제 보기 : 15654번: N과 M (5) 문제정답률 : 72%작성 코드arr_num, n = map(int,input().split())arr = list(map(int,input().split()))arr.sort()visited = [False]*arr_numdef combination(n,new): answer = [] if len(new)==n: return [new] for i in range(len(arr)): if not visited[i]: visited[i] = True answer.extend(combination(n,new+[arr[i]])) visited[i]=False r..
S3 15654번: N과 M (5)문제 보기 : 15654번: N과 M (5) 문제정답률 : 72%작성 코드arr_num, n = map(int,input().split())arr = list(map(int,input().split()))arr.sort()visited = [False]*arr_numdef combination(n,new): answer = [] if len(new)==n: return [new] for i in range(len(arr)): if not visited[i]: visited[i] = True answer.extend(combination(n,new+[arr[i]])) visited[i]=False r..
2024.12.05 -
문제 보기 : 2193번: 이친수 문제정답률 : 41%작성 코드T = int(input())before = {0:0,1:1}n = 1while n 풀이끝이 뭔지를 보는게 중요할 것 같다는 생각을 했다.그래서 길이가 1인 경우부터 5인 경우까지 확인하면서 갯수를 세고 규칙을 찾았다.길이가 1이면, 1 만 가능. 즉, key(끝 숫자)가 0,1인 딕셔너리로 나타내면 {0:0,1:1}길이가 2이면, 10 만 가능. 즉, {0:1,1:0}길이가 3이면, 100 / 101 가능. {0:1,1:1}길이가 4이면, 1000 / 1001 / 1010 가능. {0:2,1:1}길이가 5이면, 10000 / 10001 / 10010 / 10100 / 10101 가능. {0:3,1:2}다음턴 next = {0:0,1:0}에..
S3 2193. 이친수문제 보기 : 2193번: 이친수 문제정답률 : 41%작성 코드T = int(input())before = {0:0,1:1}n = 1while n 풀이끝이 뭔지를 보는게 중요할 것 같다는 생각을 했다.그래서 길이가 1인 경우부터 5인 경우까지 확인하면서 갯수를 세고 규칙을 찾았다.길이가 1이면, 1 만 가능. 즉, key(끝 숫자)가 0,1인 딕셔너리로 나타내면 {0:0,1:1}길이가 2이면, 10 만 가능. 즉, {0:1,1:0}길이가 3이면, 100 / 101 가능. {0:1,1:1}길이가 4이면, 1000 / 1001 / 1010 가능. {0:2,1:1}길이가 5이면, 10000 / 10001 / 10010 / 10100 / 10101 가능. {0:3,1:2}다음턴 next = {0:0,1:0}에..
2024.11.15 -
문제 보기 : 2108번: 통계학 문제정답률 : 26%작성 코드import sysinput = sys.stdin.readlineT = int(input())nums1 = [] ; nums2 = {}ns = 0for i in range(T): n = int(input()) ns += n nums1.append(n) if n not in nums2: nums2[n]=1 else: nums2[n]+=1print(round(ns/T))nums1.sort()if T%2==1: i = (T-1)//2 print(nums1[i])else: i = T//2 print((nums1[i]+nums1[i-1])/2)num = sorted(nums2...
S3 2108. 통계학문제 보기 : 2108번: 통계학 문제정답률 : 26%작성 코드import sysinput = sys.stdin.readlineT = int(input())nums1 = [] ; nums2 = {}ns = 0for i in range(T): n = int(input()) ns += n nums1.append(n) if n not in nums2: nums2[n]=1 else: nums2[n]+=1print(round(ns/T))nums1.sort()if T%2==1: i = (T-1)//2 print(nums1[i])else: i = T//2 print((nums1[i]+nums1[i-1])/2)num = sorted(nums2...
2024.11.11 -
문제 보기 : 14501번: 퇴사 문제정답률 : 50%작성 코드 & 풀이 과정 코멘트# import sys# input = sys.stdin.readlinen = int(input())t = [0] ; p = [0]for _ in range(n): t1, p1 = map(int,input().split()) t.append(t1) ; p.append(p1)cost = set()cost.add((1+t[1],p[1]))maxx = 0for i in range(2,n+1): possible = [] for dd,pp in cost: #4,10 if i >= dd and i+t[i] = 4 possible.append((dd+t[i],pp+p[i])) ..
S3 14501. 퇴사문제 보기 : 14501번: 퇴사 문제정답률 : 50%작성 코드 & 풀이 과정 코멘트# import sys# input = sys.stdin.readlinen = int(input())t = [0] ; p = [0]for _ in range(n): t1, p1 = map(int,input().split()) t.append(t1) ; p.append(p1)cost = set()cost.add((1+t[1],p[1]))maxx = 0for i in range(2,n+1): possible = [] for dd,pp in cost: #4,10 if i >= dd and i+t[i] = 4 possible.append((dd+t[i],pp+p[i])) ..
2024.11.10 -
문제 보기 : 1966번: 프린터 큐 문제정답률 : 58%작성 코드from collections import dequedef importance(arr,arr1,n): k = 0 while arr: idx, imp = arr.popleft() left = [i for i,j in arr if j>imp] if left: arr.append((idx, imp)) else: k += 1 # 프린트 if idx == n and arr1[n] == imp: return k return kT = int(input())for _ in range(T): n,..
S3 1966. 프린터 큐문제 보기 : 1966번: 프린터 큐 문제정답률 : 58%작성 코드from collections import dequedef importance(arr,arr1,n): k = 0 while arr: idx, imp = arr.popleft() left = [i for i,j in arr if j>imp] if left: arr.append((idx, imp)) else: k += 1 # 프린트 if idx == n and arr1[n] == imp: return k return kT = int(input())for _ in range(T): n,..
2024.11.07 -
문제 보기 : 15652번: N과 M (4) 문제정답률 : 78% 작성 코드def product(n,new,c): global arr answer = [] if len(new) == n: return [new] for i in range(c,len(arr)): answer.extend(product(n,new+[arr[i]],i)) return answern,m = map(int,input().split())arr = list(i for i in range(1,n+1))visited = [False]*(n)for p in product(m,[],0): print(*p, sep=' ')풀이product는 permutations에서 중복을 허용한건데..
S3 15652. N과 M (4)문제 보기 : 15652번: N과 M (4) 문제정답률 : 78% 작성 코드def product(n,new,c): global arr answer = [] if len(new) == n: return [new] for i in range(c,len(arr)): answer.extend(product(n,new+[arr[i]],i)) return answern,m = map(int,input().split())arr = list(i for i in range(1,n+1))visited = [False]*(n)for p in product(m,[],0): print(*p, sep=' ')풀이product는 permutations에서 중복을 허용한건데..
2024.11.07