실버2
-
문제 보기 : 16953번: A → B 문제정답률 : 39%작성 코드# 입력값을 받음 (시작 값 n, 목표 값 m)n, m = map(int, input().split())answer = -1 # 결과 초기화visited = set() # 방문한 노드를 기록할 집합visited.add(n) # 시작 노드를 방문 처리from collections import dequedd = deque([(n, 1)]) # BFS를 위한 큐 (현재 값, 연산 횟수)while dd: now, cal = dd.popleft() # 큐에서 현재 값과 연산 횟수를 꺼냄 if now == m: # 목표 값에 도달한 경우 answer = cal # 결과에 연산 횟수 저장 br..
S2 16953. A → B문제 보기 : 16953번: A → B 문제정답률 : 39%작성 코드# 입력값을 받음 (시작 값 n, 목표 값 m)n, m = map(int, input().split())answer = -1 # 결과 초기화visited = set() # 방문한 노드를 기록할 집합visited.add(n) # 시작 노드를 방문 처리from collections import dequedd = deque([(n, 1)]) # BFS를 위한 큐 (현재 값, 연산 횟수)while dd: now, cal = dd.popleft() # 큐에서 현재 값과 연산 횟수를 꺼냄 if now == m: # 목표 값에 도달한 경우 answer = cal # 결과에 연산 횟수 저장 br..
2024.12.31 -
문제 보기 : 6603번: 로또 문제정답률 : 55%작성 코드while True: arr = input() # 입력을 받음 if arr == "0": # 입력이 "0"이면 종료 break arr = list(map(int, arr.split())) # 입력을 공백으로 분리하여 정수 리스트로 변환 n = arr.pop(0) # 첫 번째 값을 n으로 설정하고 리스트에서 제거 # 중복 없는 조합 생성 함수 def combinations(n, new, c): answer = [] if len(new) == n: # 조합의 길이가 목표(n)에 도달하면 반환 return [new] for i in ran..
S2 6603. 로또문제 보기 : 6603번: 로또 문제정답률 : 55%작성 코드while True: arr = input() # 입력을 받음 if arr == "0": # 입력이 "0"이면 종료 break arr = list(map(int, arr.split())) # 입력을 공백으로 분리하여 정수 리스트로 변환 n = arr.pop(0) # 첫 번째 값을 n으로 설정하고 리스트에서 제거 # 중복 없는 조합 생성 함수 def combinations(n, new, c): answer = [] if len(new) == n: # 조합의 길이가 목표(n)에 도달하면 반환 return [new] for i in ran..
2024.12.31 -
문제 보기 : 9020번: 골드바흐의 추측 문제정답률 : 39% 작성 코드T = int(input())# 에라토스테네스의 체를 사용해 소수 판별 리스트 생성max_m = 10000 # 소수 계산의 최대값ari_map = [False,False]+[True]*(max_m-1)for i in range(2,max_m+1): if ari_map[i]: for j in range(2*i,max_m+1,i): ari_map[j]=Falsefor _ in range(T): n = int(input()) # n을 두 소수의 합으로 표현하기 위한 초기 값 설정 left = n//2 # 중간값부터 시작 (작은 소수) right = n//2 # 중간값부터 시작 ..
S2 9020. 골드바흐의 추측문제 보기 : 9020번: 골드바흐의 추측 문제정답률 : 39% 작성 코드T = int(input())# 에라토스테네스의 체를 사용해 소수 판별 리스트 생성max_m = 10000 # 소수 계산의 최대값ari_map = [False,False]+[True]*(max_m-1)for i in range(2,max_m+1): if ari_map[i]: for j in range(2*i,max_m+1,i): ari_map[j]=Falsefor _ in range(T): n = int(input()) # n을 두 소수의 합으로 표현하기 위한 초기 값 설정 left = n//2 # 중간값부터 시작 (작은 소수) right = n//2 # 중간값부터 시작 ..
2024.12.27 -
문제 보기 : 4963번: 섬의 개수 문제정답률 : 49%작성 코드from collections import deque # 8방향 탐색을 위한 방향 벡터 정의 (상하좌우+대각선)directions = [(1, 0), (-1, 0), (0, 1), (0, -1), (1, 1), (-1, 1), (1, -1), (-1, -1)]# 섬 탐색 함수 정의 (BFS 사용)def island(graph, start): graph[start[1]][start[0]] = 0 # 시작점을 방문 처리 (0으로 설정) visited[start[1]][start[0]] = True # 방문 여부 기록 count = 1 # 섬 크기(1의 개수) 카운트 dd = deque([start]) whi..
S2 4963. 섬의 개수문제 보기 : 4963번: 섬의 개수 문제정답률 : 49%작성 코드from collections import deque # 8방향 탐색을 위한 방향 벡터 정의 (상하좌우+대각선)directions = [(1, 0), (-1, 0), (0, 1), (0, -1), (1, 1), (-1, 1), (1, -1), (-1, -1)]# 섬 탐색 함수 정의 (BFS 사용)def island(graph, start): graph[start[1]][start[0]] = 0 # 시작점을 방문 처리 (0으로 설정) visited[start[1]][start[0]] = True # 방문 여부 기록 count = 1 # 섬 크기(1의 개수) 카운트 dd = deque([start]) whi..
2024.12.09 -
문제 보기 : 11725번: 트리의 부모 찾기 문제정답률 : 42% 작성 코드import sysinput = sys.stdin.readline# 입력 처리T = int(input()) # 노드의 개수 입력graph = [[] for _ in range(T+1)] # 노드의 연결 정보를 저장할 그래프 초기화# 트리 구조 입력for _ in range(T-1): a, b = map(int, input().split()) # 연결된 두 노드 입력 graph[a].append(b) # 양방향 그래프 구성 graph[b].append(a)mama = [0] * (T+1) # 각 노드의 부모를 저장할 리스트 초기화from collections import deque # BFS를 위한..
S2 11725. 트리의 부모 찾기문제 보기 : 11725번: 트리의 부모 찾기 문제정답률 : 42% 작성 코드import sysinput = sys.stdin.readline# 입력 처리T = int(input()) # 노드의 개수 입력graph = [[] for _ in range(T+1)] # 노드의 연결 정보를 저장할 그래프 초기화# 트리 구조 입력for _ in range(T-1): a, b = map(int, input().split()) # 연결된 두 노드 입력 graph[a].append(b) # 양방향 그래프 구성 graph[b].append(a)mama = [0] * (T+1) # 각 노드의 부모를 저장할 리스트 초기화from collections import deque # BFS를 위한..
2024.12.09 -
문제 보기 : 1406번: 에디터 문제정답률 : 26%작성 코드from collections import dequeimport sysinput = sys.stdin.readlineleft = deque(list(input().rstrip()))right = deque()k = int(input().strip())for _ in range(k): word = input().strip() if word == 'L': if left: right.appendleft(left.pop()) elif word == 'D': if right: left.append(right.popleft()) elif word == 'B': ..
S2 1406. 에디터문제 보기 : 1406번: 에디터 문제정답률 : 26%작성 코드from collections import dequeimport sysinput = sys.stdin.readlineleft = deque(list(input().rstrip()))right = deque()k = int(input().strip())for _ in range(k): word = input().strip() if word == 'L': if left: right.appendleft(left.pop()) elif word == 'D': if right: left.append(right.popleft()) elif word == 'B': ..
2024.11.27 -
문제 보기 : 4949번: 균형잡힌 세상 문제정답률 : 32%작성 코드# import sys# input = sys.stdin.readlinewhile True: inp = list(input()) a = 0 b = 0 p = True if inp == ['.']: break before = [] for i in inp: if i == '[': b += 1 before.append('[') elif before and before[-1] == '[' and i == ']': b -= 1 before.pop() elif (not be..
S2 4949. 균형잡힌 세상문제 보기 : 4949번: 균형잡힌 세상 문제정답률 : 32%작성 코드# import sys# input = sys.stdin.readlinewhile True: inp = list(input()) a = 0 b = 0 p = True if inp == ['.']: break before = [] for i in inp: if i == '[': b += 1 before.append('[') elif before and before[-1] == '[' and i == ']': b -= 1 before.pop() elif (not be..
2024.11.25 -
문제 보기 : 1182번: 부분수열의 합 문제정답률 : 43%작성 코드def combinations(n,new,c): answer = [] if len(new)==n: return [new] for i in range(c,len(arr)): answer.extend(combinations(n,new+[arr[i]],i+1)) return answern,goal = map(int,input().split())arr = list(map(int,input().split()))arr.sort()visited = [False]*nanswer = []for i in range(1,n+1): answer.extend(combinations(i,[],0))ls = ..
S2 1182. 부분수열의 합문제 보기 : 1182번: 부분수열의 합 문제정답률 : 43%작성 코드def combinations(n,new,c): answer = [] if len(new)==n: return [new] for i in range(c,len(arr)): answer.extend(combinations(n,new+[arr[i]],i+1)) return answern,goal = map(int,input().split())arr = list(map(int,input().split()))arr.sort()visited = [False]*nanswer = []for i in range(1,n+1): answer.extend(combinations(i,[],0))ls = ..
2024.11.22