본문 바로가기
반응형

알고리즘250

[백준][Python] 2667번 단지번호붙이기 2667번: 단지번호붙이기 과 같이 정사각형 모양의 지도가 있다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다. 철수는 이 지도를 가지고 연결된 집의 모임인 단지를 정의하고, 단지에 번호를 붙이려 한다. 여 www.acmicpc.net 코드 from collections import deque dx = [0,0,1,-1] dy = [1,-1,0,0] def bfs(graph,x,y): queue = deque() queue.append((x,y)) graph[x][y] = 0 count = 1 while queue: x,y = queue.popleft() for i in range(4): # 상하좌우 모두 확인 x_n = x + dx[i] y_n = y + dy[i] if x_n < 0 or x.. 2022. 9. 22.
[백준][Python] 9421번 소수상근수 9421번: 소수상근수 양의 정수 n의 각 자리수의 제곱의 합을 계산한다. 그렇게 해서 나온 합도 각 자리수의 제곱의 합을 계산한다. 이렇게 반복해서 1이 나온다면, n을 상근수라고 한다. 700은 상근수이다. 72 + 02 + 02 = www.acmicpc.net 코드 import math def prime(num): for i in range(2,int(math.sqrt(num))+1): if num % i == 0: return False return True def check(num): visit = {} while 1: n = str(num) num = 0 for i in range(len(n)): num += int(n[i]) ** 2 if num == 1: return True if num .. 2022. 9. 21.
[백준][Python] 11256번 사탕 11256번: 사탕 당신은 사탕 공장의 주인이다. 날마다, 당신은 J개의 사탕을 가게에 보내기 위해 상자에 포장해야 한다. 당신은 크기가 다른 상자 N개를 가지고 있다. 당신은 편리를 위해 상자를 최소한으로 쓰 www.acmicpc.net 코드 import sys t = int(input()) for i in range(t): box = [] j,n = map(int,input().split()) for a in range(n): r,c = map(int,sys.stdin.readline().split()) box.append(r*c) box.sort(reverse=True) total = 0 for a in range(n): total += box[a] if total >= j: print(a+1) b.. 2022. 9. 20.
[백준][Python] 2168번 타일 위의 대각선 2168번: 타일 위의 대각선 첫째 줄에 가로의 길이 xcm와 세로의 길이 ycm가 주어진다. x와 y는 1,000,000,000 이하의 자연수이다. x와 y사이에는 빈칸이 하나 이상 있다. www.acmicpc.net 코드 def gcd(x,y): if y > x: x,y = y,x while 1: if y == 0: break x,y = y, x%y return x x,y = map(int,input().split()) g = gcd(x,y) print(x+y-g) 설명 예전에 비슷한 문제를 풀어봐서 답을 구하는 식이 x + y - gcd(x,y) 였던 것이 생각났다. def gcd(x, y): for i in range(min(x, y), 0, -1): if x % i == 0 and y % i =.. 2022. 9. 19.
반응형