본문 바로가기

Algorithm 💡272

[백준 4375번] 1 while True: # 무한 입력 try: #무한 입력이기 때문에 파일의 끝 에러 EOF에러를 잡아주기 위한 try,catch 구문 작성 n = int(input()) num = 0 square = 0 while True: num += (10**square) if num % n == 0 : print(square+1) break square += 1 except EOFError: #파일의 끝에러 EOFError를 처리 break 이번 문제는 n의 배수중에 모든 자리의 수가 1인 값의 자리수를 출력하는 문제이다. 처음에 이 문제를 풀었을 때는 아래와 같이 n에 1부터 하나씩 곱해가면서, 각 자리의 수가 모두 1인지 확인해가며 풀었다. while True: input_data = int(input()) m.. 2023. 4. 14.
[백준 2293번] 동전1 n, k = map(int,input().split()) # 1차원 DP 테이블을 사용한 풀이 prices = [0] * n for i in range(n): prices[i] = int(input()) # dp[i] -> i원을 만들 때 가능한 경우의 수 dp = [0 for _ in range(k+1)] # dp[0] -> 0원을 만들 때 가능한 경우의 수, 동전을 사용하지 않는 경우 이므로 1로 초기화 dp[0] = 1 for price in prices: for i in range(price,k+1): dp[i] = dp[i] + dp[i-price] print(dp[k]) # 2차원 DP 테이블를 사용한 풀이(시간초과) # prices = [0] * (n+1) # for i in range(1,.. 2023. 4. 11.
[백준 1520번] 내리막 길 import sys sys.setrecursionlimit(50000000); m, n = map(int,input().split()) area = [list(map(int,input().split())) for _ in range(m)] dp = [[-1]*n for _ in range(m)] nx, ny = [-1,1,0,0], [0,0,-1,1] def dfs(x,y): # 도착 지점에 도달하면 1 리턴 if x == (m-1) and y == (n-1): return 1 # 이미 방문한 길이라면 경우의 수를 구하지 않고 해당 위치에서 출발하는 경우의 수 리턴 if dp[x][y] != -1: return dp[x][y] way_count = 0 for i in range(4): temp_x = x.. 2023. 4. 10.
[백준 2583번] 영역 구하기 from collections import deque m,n,k = map(int,input().split()) area = [[0]*n for _ in range(m)] visited = [[False]*n for _ in range(m)] count_list = [] for i in range(k): x1, y1, x2, y2 = map(int,input().split()) for j in range(y1,y2): for k in range(x1,x2): area[j][k] = 1 def bfs(x,y): if visited[x][y] or area[x][y] == 1: return False count = 1 queue = deque([(x,y)]) visited[x][y] = True while .. 2023. 4. 6.
[백준 11725번] 트리의 부모 찾기 import sys sys.setrecursionlimit(50000000); n = int(input()) graph = [[] for _ in range(n+1)] result = [0]*(n+1) visited = [False]*(n+1) for _ in range(n-1): a, b = map(int,input().split()) graph[a].append(b) graph[b].append(a) def dfs(graph,v,visited): visited[v] = True for i in graph[v]: if not visited[i]: result[i] = v dfs(graph,i,visited) dfs(graph,1,visited) for i in range(2,n+1): print(res.. 2023. 4. 6.
[이코테] 금광 t = int(input()) result = [] for i in range(t): n, m = map(int,input().split()) input_data = list(map(int,input().split())) max_value = 0 array = [[0]*21 for _ in range(21)] dp = [[0]*21 for _ in range(21)] for i in range(n): for j in range(m): array[i][j] = input_data[(i*m)+j] for i in range(1,n+1): for j in range(1,m+1): if j == 1: dp[i][j] = array[i-1][j-1] for i in range(1,m+1): for j in ran.. 2023. 3. 27.