실버1
-
문제 보기 : 2583번: 영역 구하기 문제정답률 : 57%작성 코드# n: 세로 크기, m: 가로 크기, t: 직사각형 개수 입력받기n, m, t = map(int, input().split())# arr: 방문 여부를 저장하는 2차원 배열 초기화arr = [[False] * m for _ in range(n)]# t개의 직사각형 좌표를 입력받아 해당 영역을 True로 설정for _ in range(t): a1, b1, a2, b2 = map(int, input().split()) for y in range(a1, a2): # x 좌표 범위 for x in range(n - b2, n - b1): # y 좌표 범위 (상하 뒤집힘 처리) arr[x][y] ..
S1 2583. 영역 구하기문제 보기 : 2583번: 영역 구하기 문제정답률 : 57%작성 코드# n: 세로 크기, m: 가로 크기, t: 직사각형 개수 입력받기n, m, t = map(int, input().split())# arr: 방문 여부를 저장하는 2차원 배열 초기화arr = [[False] * m for _ in range(n)]# t개의 직사각형 좌표를 입력받아 해당 영역을 True로 설정for _ in range(t): a1, b1, a2, b2 = map(int, input().split()) for y in range(a1, a2): # x 좌표 범위 for x in range(n - b2, n - b1): # y 좌표 범위 (상하 뒤집힘 처리) arr[x][y] ..
2025.01.04 -
문제 보기 : 1991번: 트리 순회 문제정답률 : 67%작성 코드# 전위 순회: 현재 노드 → 왼쪽 자식 → 오른쪽 자식def preorder(node): if node == '.': # 자식이 없는 경우 return '' return node + preorder(tree[node][0]) + preorder(tree[node][1])# 중위 순회: 왼쪽 자식 → 현재 노드 → 오른쪽 자식def inorder(node): if node == '.': # 자식이 없는 경우 return '' return inorder(tree[node][0]) + node + inorder(tree[node][1])# 후위 순회: 왼쪽 자식 → 오른쪽 자식 → 현재 노드..
S1 1991. 트리 순회문제 보기 : 1991번: 트리 순회 문제정답률 : 67%작성 코드# 전위 순회: 현재 노드 → 왼쪽 자식 → 오른쪽 자식def preorder(node): if node == '.': # 자식이 없는 경우 return '' return node + preorder(tree[node][0]) + preorder(tree[node][1])# 중위 순회: 왼쪽 자식 → 현재 노드 → 오른쪽 자식def inorder(node): if node == '.': # 자식이 없는 경우 return '' return inorder(tree[node][0]) + node + inorder(tree[node][1])# 후위 순회: 왼쪽 자식 → 오른쪽 자식 → 현재 노드..
2024.12.29 -
문제 보기 : 2468번: 안전 영역 문제정답률 : 34%작성 코드from collections import dequen = int(input())area = [list(map(int,input().split())) for _ in range(n)]area_max = max([max(l) for l in area]) # 지형의 최대 높이 계산# 특정 높이 이하의 영역을 방문 처리하는 함수def change(graph,num): visited = [[False]*n for _ in range(n)] # 방문 여부를 저장할 2D 리스트 for i in range(n): for j in range(n): if graph[i][j]풀이이 문제는 주어진 지역의 높이에..
S1 2468. 안전 영역문제 보기 : 2468번: 안전 영역 문제정답률 : 34%작성 코드from collections import dequen = int(input())area = [list(map(int,input().split())) for _ in range(n)]area_max = max([max(l) for l in area]) # 지형의 최대 높이 계산# 특정 높이 이하의 영역을 방문 처리하는 함수def change(graph,num): visited = [[False]*n for _ in range(n)] # 방문 여부를 저장할 2D 리스트 for i in range(n): for j in range(n): if graph[i][j]풀이이 문제는 주어진 지역의 높이에..
2024.12.16 -
문제 보기 : 11286번: 절댓값 힙 문제정답률 : 57%작성 코드import heapqimport sysinput = sys.stdin.readline# 연산의 개수 입력n = int(input())# 힙 초기화calcul = []for _ in range(n): x = int(input()) if x != 0: # 힙에 (절댓값, 원래값) 형태로 저장 heapq.heappush(calcul, (abs(x), x)) else: if calcul: # 절댓값이 가장 작은 값을 출력하고 제거 print(heapq.heappop(calcul)[1]) else: # 힙이 비어있으면 ..
S1 11286. 절댓값 힙문제 보기 : 11286번: 절댓값 힙 문제정답률 : 57%작성 코드import heapqimport sysinput = sys.stdin.readline# 연산의 개수 입력n = int(input())# 힙 초기화calcul = []for _ in range(n): x = int(input()) if x != 0: # 힙에 (절댓값, 원래값) 형태로 저장 heapq.heappush(calcul, (abs(x), x)) else: if calcul: # 절댓값이 가장 작은 값을 출력하고 제거 print(heapq.heappop(calcul)[1]) else: # 힙이 비어있으면 ..
2024.12.15 -
문제 보기 : 7562번: 나이트의 이동 문제정답률 : 52%작성 코드from collections import deque# 체스판 위 기사(Knight)의 이동 방향directions = [(-2,-1),(-1,-2),(-2,1),(-1,2),(2,-1),(1,-2),(2,1),(1,2)]## 기사의 이동def knight(graph,start): graph[start[0]][start[1]]=0 visited[start[0]][start[1]]=True dd = deque([start]) while dd: x,y = dd.popleft() for dx,dy in directions: xx= x+dx; yy = y+dy ..
S1 7562. 나이트의 이동문제 보기 : 7562번: 나이트의 이동 문제정답률 : 52%작성 코드from collections import deque# 체스판 위 기사(Knight)의 이동 방향directions = [(-2,-1),(-1,-2),(-2,1),(-1,2),(2,-1),(1,-2),(2,1),(1,2)]## 기사의 이동def knight(graph,start): graph[start[0]][start[1]]=0 visited[start[0]][start[1]]=True dd = deque([start]) while dd: x,y = dd.popleft() for dx,dy in directions: xx= x+dx; yy = y+dy ..
2024.12.09 -
문제 보기 : 11660번: 구간 합 구하기 5 문제정답률 : 43%작성 코드import sysinput = sys.stdin.readlinen,m = map(int,input().split())ls = list(list(map(int,input().split())) for _ in range(n))for i in range(n): #행 for j in range(n): #열 if i == 0 and j == 0 : continue elif i == 0: ls[i][j] += ls[i][j-1] elif j == 0: ls[i][j] += ls[i-1][j] else: ..
S1 11660. 구간 합 구하기 5문제 보기 : 11660번: 구간 합 구하기 5 문제정답률 : 43%작성 코드import sysinput = sys.stdin.readlinen,m = map(int,input().split())ls = list(list(map(int,input().split())) for _ in range(n))for i in range(n): #행 for j in range(n): #열 if i == 0 and j == 0 : continue elif i == 0: ls[i][j] += ls[i][j-1] elif j == 0: ls[i][j] += ls[i-1][j] else: ..
2024.12.03 -
문제 보기 : 14888번: 연산자 끼워넣기 문제정답률 : 46%작성 코드n = int(input())ls = list(map(int,input().split()))sssd = list(map(int,input().split()))sd = sum(sssd)visited = [False]*sdarr = [1]*sssd[0]+[2]*sssd[1]+[3]*sssd[2]+[4]*sssd[3]maxc=-1000000000; minc=1000000000def permutations(arr): answer = [] used = [False]*(n-1) def back(new,used): if len(new)==len(arr): answer.append(new[:]) ..
S1 14888. 연산자 끼워넣기문제 보기 : 14888번: 연산자 끼워넣기 문제정답률 : 46%작성 코드n = int(input())ls = list(map(int,input().split()))sssd = list(map(int,input().split()))sd = sum(sssd)visited = [False]*sdarr = [1]*sssd[0]+[2]*sssd[1]+[3]*sssd[2]+[4]*sssd[3]maxc=-1000000000; minc=1000000000def permutations(arr): answer = [] used = [False]*(n-1) def back(new,used): if len(new)==len(arr): answer.append(new[:]) ..
2024.11.12 -
문제 보기 : 10844번: 쉬운 계단 수 문제정답률 : 30%작성 코드 & 풀이 과정 코멘트longg = int(input())from collections import dequeanswer = 0start = [str(i) for i in range(1,10)]start = deque(start)while start: st = start.popleft() if len(st)==longg: answer += 1 elif int(st[-1]) == 0: #10 start.append(st+"1") elif int(st[-1]) == 9: start.append(st+"8") else: start.append(st+ str(in..
S1 10844. 쉬운 계단 수문제 보기 : 10844번: 쉬운 계단 수 문제정답률 : 30%작성 코드 & 풀이 과정 코멘트longg = int(input())from collections import dequeanswer = 0start = [str(i) for i in range(1,10)]start = deque(start)while start: st = start.popleft() if len(st)==longg: answer += 1 elif int(st[-1]) == 0: #10 start.append(st+"1") elif int(st[-1]) == 9: start.append(st+"8") else: start.append(st+ str(in..
2024.10.23