목록분류 전체보기 (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..
항해99시작 전주부터 일사천리로 빠르게 조를 편성받았고 바로 4일동안 프로젝트를 완성시켜야 하는 미션이 내려졌다. 프로젝트를 준비면서 서버사이드 렌더링, 진자템플릿 jwt로그인 기능 들을 동시에 배우고 구현해야 했으므로 정규코딩시간 아침 9시부터 저녁 9시까지의 시간도 모잘라 하루에 15시간 정도의 코딩을 했었던 것 같다. 팀으로 개발 프로젝트를 해보는 것은 역시 처음이였지만 얼떨결에 팀장도 맡게 되었다 작은 프로젝트지만 어떻게 효율적으로 프로젝트를 제작하는지 혹은 어떤식으로 팀원들에게 지치지 않고 동기부여를 해야할지 나름대로 고민이 깊었고 평소 인상깊게 읽었던 데일 카네기 인간관계론을 다시 읽으며 코딩과는 별개로 팀원들과 좋은 관계를 형성하려고 노력했다. 사전 준비기간에 배운 정보와 새롭게 얻은 정보를..
DFS = Depth First Search = 깊이 우선 탐색 최대한 깊이 들어가본다 BFS = Breadth First Serch = 넓이 우선 탐색 최대한 넓게 본다 미로를 예로 들면, DFS는 틀린길일 지라도 최대한 깊게 들어가서 길이 없는걸 확인하고 돌아온다. BFS는 끝까지 들어가는게 아니라 확인하고 나서 다른길로 들어간다. www.youtube.com/watch?v=-wsYtm0x3nw&t=301s 컴퓨터에서는 어떻게 쓰일까? 트리라고 불리는 구조를 볼 수 있는데 아래를 보면 쉽게 이해 할 수 있을 것이다. 1. 루트 노드부터시작 2. 현재 방문한 노드를 visited에 추가 3. 현재 방문한 노드와 인접한 노드 중 방문하지 않은 노드에 방문한다 4. 2부터 반복한다FS = Depth Fir..