목록전체 글 (185)
hmk run dev
항해를 시작한 지 이제 2주 차.... 알고리즘이란 녀석을 만나게 됐다 먼저 이름부터 무서운 알고리즘의 사전적 의미를 살펴보면 알고리즘(algorithm)은 주어진 문제를 논리적으로 해결하기 위해 필요한 절차, 방법, 명령어들을 모아놓은 것입니다. 넓게는 사람 손으로 해결하는 것, 컴퓨터로 해결하는 것, 수학적인 것, 비수 학적인 것을 모두 포함한답니다. 흠... 그런데 이걸 왜 배워야 해??라는 의문점이 들지 않을 수 없었다 일단 예체능 쪽으로 전공을 택해서 수학이랑은 거리가 멀었던 나라... 사실 접근하고 싶지도 않았다 :( ( 사실 수학은 컴퓨터가 다 해준다 ^^..... ) 그래서 알고리즘을 배워야 하는 이유를 찾아봤다 크게 4가지로 보였는데 - 좋은 프로그램을 만들기 위해 - 프로그램을 평가하기..
www.acmicpc.net/problem/4948 4948번: 베르트랑 공준 베르트랑 공준은 임의의 자연수 n에 대하여, n보다 크고, 2n보다 작거나 같은 소수는 적어도 하나 존재한다는 내용을 담고 있다. 이 명제는 조제프 베르트랑이 1845년에 추측했고, 파프누티 체비쇼 www.acmicpc.net 정답코드 import math def IsPrime(num): #소수인지 판별하는 함수 a = int(math.sqrt(num)) # 루트2 루트3 루트4(2) 루트 5 루트 6 if num == 1: return False else: for i in range(2, a+1): if num % i == 0: return False return True Num_list = list(range(2,24691..
################# # 1을 방문했을 때 2,5,9를 스택에 넣어준다 # 맨처 # 위의 그래프를 예시로 삼아서 인접 리스트 방식으로 표현했습니다! graph = { 1: [2, 5, 9], 2: [1, 3], 3: [2, 4], 4: [3], 5: [1, 6, 8], 6: [5, 7], 7: [6], 8: [5], 9: [1, 10], 10: [9] } # 1. 루트 노드를 스택에 넣는다. # 2. 현재 스택의 노드를 빼서 visited에 추가한다 # 3. 현재 방문한 노드와 인접한 노드 중 방문하지 않은 노드를 스택에 추가한다. # 4. 2부터 반복한다 # 5. 스택이 비면 탐색을 종료한다 def dfs_stack(adjacent_graph, start_node): #그래프, 노드 stac..