본문 바로가기

분류 전체보기72

[python]재귀 - 하노이의 탑 [참고 블로그] shoark7.github.io/programming/algorithm/tower-of-hanoi '하노이의 탑' 이해하기 '하노이의 탑' 문제를 이해하고 문제 해결을 위한 핵심 통찰을 살핀 뒤 코드로 작성합니다. 이후 탑의 개수에 따른 총 이동 횟수를 구하는 일반항까지 수학적으로 유도합니다. shoark7.github.io [코드] # 하노이의 탑 경로출력 - 출처 : https://shoark7.github.io/programming/algorithm/tower-of-hanoi MSG_FORMAT = "{}: {} -> {}" def move(N, start, to): print(MSG_FORMAT.format(N, start, to)) def hanoi(N, start, to, vi.. 2021. 4. 24.
[python] dijkstra 알고리즘 dijkstra(다익스트라) 알고리즘은 source node로 부터 모든 node까지의 최단거리를 구하는 알고리즘이다. 먼저 다른 블로그에서 코드를 보고, 출력을 해보며 작동원리를 이해해보았다. 다익스트라 알고리즘을 구현하기전에 먼저 heapq에 대해 공부해야 했다. heapq는 우선순위큐 를 구현하기 위해 쓰이는 모듈이다. 따로 설치할 필요없이 import heapq 하면 된다. [heapq] 완전 이진 트리 형태 부모 노드 키값이 자식 노드 키값보다 항상 작다(최소힙) 키값의 대소관계는 부모/자식 관계에서만 성립하고, 자식끼리의 대소관계는 없다 heapq 예시 import heapq q = [] heapq.heappush(q, [2, 'D']) heapq.heappush(q, [8, 'B']) hea.. 2021. 3. 22.
[노마드코더]인스타 클론코딩 사전 지식 쌓기 노마드 코더 인스타그램 클론코딩 3장 강의를 듣고 정리한 것(기록용!) [준비] gitignore을 vscode extension 을 설치해서 생성(매번 gitignore.io 에서 생성했는데 이런방법도 있구나!) $ npm init 명령어를 통해 package.json 파일 생성 server.js 생성(처음엔 여기에 모든 기능을 다 넣고 나중에 분리) [apollo server, graphql] $ npm install apollo-server graphql package.json 에서 scripts.dev에 "nodemon server.js" 추가 $ npm run dev (port 4000번으로 실행됨) [babel] const { ... } = require(...) ⇒ 옛날문법 import { .. 2021. 3. 7.
[programmers]sql-입양 시각 구하기(1) programmers.co.kr/learn/courses/30/lessons/59412 코딩테스트 연습 - 입양 시각 구하기(1) ANIMAL_OUTS 테이블은 동물 보호소에서 입양 보낸 동물의 정보를 담은 테이블입니다. ANIMAL_OUTS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, NAME, SEX_UPON_OUTCOME는 각각 동물의 아이디, 생물 programmers.co.kr datetime 형식으로 되어있는 입양시각을 hour단위로 count하는 문제이다. datetime 형식이므로 yy-mm-dd hh:mm:ss 형식으로 되어있다. 일단 hour단위로 group지어야 하므로 hour(datetime)을 사용했다. SELECT HOUR(DATET.. 2021. 2. 26.
[programmers]sql-Null 처리하기 programmers.co.kr/learn/courses/30/lessons/59410 코딩테스트 연습 - NULL 처리하기 ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디 programmers.co.kr ANIMAL_INS 테이블에서 ANIMAL_TYPE, NAME, SEX_UPON_INTAKE를 ANIMAL_ID순으로 정렬하고, 만약 NAME이 NULL이라면 'No name'으로 출력하는 문제이다. NULL 이라면 'No name'으로 출력하는 것만 빼면 쉬운 문제.. 2021. 2. 26.
[python]programmers-소수찾기 programmers.co.kr/learn/courses/30/lessons/42839 코딩테스트 연습 - 소수 찾기 한자리 숫자가 적힌 종이 조각이 흩어져있습니다. 흩어진 종이 조각을 붙여 소수를 몇 개 만들 수 있는지 알아내려 합니다. 각 종이 조각에 적힌 숫자가 적힌 문자열 numbers가 주어졌을 때, 종이 programmers.co.kr level2, 완전탐색 카테고리에 해당하는 문제이다. 문제를 풀기위한 단계 1. 주어진 수로 만들 수 있는 모든 수의 순열을 구한다 2. 순열을 차례로 검사하여 소수인지 판단한다 1번부터 어떻게 해야할지 막막했다. 검색을 해보니 python에서 순열을 만들어주는 함수가 있었다. from itertools import permutations numbers = '7.. 2021. 2. 26.