전체 글 (122) 썸네일형 리스트형 [백준 / 2667] 단지번호붙이기 - Python 구현한 함수의 기능은 그래프를 입력받고, 좌표를 상하좌우 움직이면서 방문한 노드는 2로 값을 바꾸고, 방문해야 할 노드인 값이 1인 노드를 찾아서 반복한다. 함수는 2로 바꾼 좌표의 개수를 반환한다. 그래프의 모든 노드를 돌면서 값이 1인 좌표를 함수에 넣는다. 함수가 끝나면 1과 연결된 좌표는 2로 바뀌므로 바뀐 개수를 answer에 저장하고, 다른 1을 찾는다. N = int(input()) graph = [] for _ in range(N): graph.append(list(map(int, input()))) 첫 째줄에 지도의 크기 N을 입력받고, 다음 입력에서는 이중 리스트로 그래프를 입력받는다. answer = [] for x in range(N): for y in range(N): if gra.. [백준 / 2606] 바이러스 - Python 너비 우선 탐색(BFS)을 이용하여 풀었으므로, 해당 알고리즘을 선행하면 좋다. 2021.03.19 - [# Coding/# Algorithm] - [보기 쉬운 Algorithm] 너비 우선 탐색(BFS) - Python [보기 쉬운 Algorithm] 너비 우선 탐색(BFS) - Python 너비 우선 탐색(Breadth First Search)은 연결된 노드를 연속적으로 쫓아서 찾는 것이 아닌 연결된 노드들을 모두 탐색한 후 그다음 연결 노드를 탐색한다. 예를 들어 위와 같은 경우 'A'에서 탐색을 시 joinmycode.tistory.com 입력을 받아 양방향 그래프를 작성하고, 너비 우선 탐색으로 1번 노드부터 탐색한다. N = int(input()) M = int(input()) 총노드의 개수인.. [보기 쉬운 Algorithm] 다익스트라(Dijkstra) 알고리즘 - Python '다익스트라(Dijkstra) 알고리즘'은 비용(가중치) 간선이 있는 노드 그래프의 최단 거리를 구하는 알고리즘 시간을 줄이기 위해서 파이썬 모듈 중 최소 힙을 구현할 수 있는 heapq를 사용한다. ↳ list로도 구현 가능하나 시간이 느려진다. import heapq def dijkstra(graph, start): distances = {node: float('inf') for node in graph} distances[start] = 0 queue = [] heapq.heappush(queue, [distances[start], start]) graph와 시작 점인 start를 인자로 받는다. distances는 계산된 각 점마다의 거리를 담고있다. 다익스트라 알고리즘은 거리가 짦은 값을 갱신하.. [백준 / 2178] 미로 탐색 - Python '다익스트라(Dijkstra) 알고리즘'을 이욯하여 풀었으므로, 해당 알고리즘에 대한 선행이 필요하다. 2021.03.18 - [# Coding/# Algorithm] - [보기 쉬운 Algorithm] 다익스트라(Dijkstra) 알고리즘 - Python [보기 쉬운 Algorithm] 다익스트라(Dijkstra) 알고리즘 - Python '다익스트라(Dijkstra) 알고리즘'은 비용(가중치) 간선이 있는 노드 그래프의 최단 거리를 구하는 알고리즘 시간을 줄이기 위해서 파이썬 모듈 중 최소 힙을 구현할 수 있는 heapq를 사용한다. ↳ list joinmycode.tistory.com import sys import heapq def dijkstra(graph, N, M): distances = [.. [백준 / 1753] 최단경로 - Python 시간 초과와 여러개의 간선에서 문제가 있었다. 최단 경로는 '다익스트라(Dijkstra) 알고리즘'을 먼저 공부해야 한다. ↳ 출발 지점으로부터 비용(가중치)이 가장 낮은 경로를 계산 2021.03.18 - [# Coding/# Algorithm] - [보기 쉬운 Algorithm] 다익스트라(Dijkstra) 알고리즘 - Python [보기 쉬운 Algorithm] 다익스트라(Dijkstra) 알고리즘 - Python '다익스트라(Dijkstra) 알고리즘'은 비용(가중치) 간선이 있는 노드 그래프의 최단 거리를 구하는 알고리즘 시간을 줄이기 위해서 파이썬 모듈 중 최소 힙을 구현할 수 있는 heapq를 사용한다. ↳ list joinmycode.tistory.com import sys import h.. [보기 쉬운 Python] 문자열 String 문자열 ' ', " ", ''' ''', """ """을 사용 - ''' '''이나 """ """은 여러 줄 표현 가능 str1 = 'Hello World!' str2 = "Hello World!" str2 = ''' Hello World! ''' str3 = """ Hello World! """ str.count('a') # a의 개수를 셈 str.find('a') # 없으면 -1을 반환 str.index('a') # 없으면 에러 str.join(',') # 모든 문자 사이에 ,입력 str.upper( ) # 대문자로 str.lower( ) # 소문자로 str.lstrip( ) # 왼쪽 공백 제거 str.strip( ) # 양쪽 공백 제거 str.rstrip( ) # 오른쪽 공백 제거 str.repla.. [보기 쉬운 Python] 포맷팅 Formatting %d : 숫자 %s : 문자(숫자가 입력 되어도 문자로 대입) %f : 부동 소수점 %o : 8진수 %x : 16진수 %% : 문자 % num1 = 1.23456789 print('%d' % num1) # 1 print('%s' % num1) # 1.23456789 : type print('%f' % num1) # 1.234568 : 반올림됨 print('%.4f' % num1) # 1.2346 : 소수점 4자리(반올림) print('%10s' % 'str') # ' str' print('%-10s' % 'str') # 'str ' print('%10.4f' % num1) # ' 1.2345' # 진수표현 num2 = 20 print('%o' % num2) # 24 print('%x' % num2) # .. [백준 / 9094] 수학적 호기심 - Python (a, b)는 정수쌍이므로, for문을 통해서 한번씩 돌려주고, 간단히 (a2+b2+m)/(ab)에서 /를 %로 바꾸어 조건에 맞으면 count를 추가해 주면 된다. python3로 제출하니 계속 시간초과가 나와서 pypy3로 제출했다. import sys for _ in range(int(sys.stdin.readline())): n,m=map(int,sys.stdin.readline().split()) count=0 for a in range(1,n-1): for b in range(a+1,n): if (a**2+b**2+m)%(a*b)==0:count+=1 print(count) 이전 1 ··· 12 13 14 15 16 다음