본문 바로가기
728x90
반응형

전체글

[Music21] 1. Music21 가이드 ( Note , Pitch , Duration ) Music21 라이브러리 가이드 1 import music21 #Music21 User Guide 1 ~ 3 레퍼런스 정리 # midi 파일 불러오는 법 #music21.converter.parse(datapath) 로 music21 객체 생성 datapath = "...Canon_in_D.mid" midi = music21.converter.parse(datapath) # midi 파일의 키 알아내기 print(midi.analyze('key')) #Canon의 경우 D 메이저 # note (음표) 객체 만들기 f = music21.note.Note("F5") #F5 즉 5옥타브의 파 음을 만들었다. 따라서 f.name은 F(파)를 octave는 5옥타브를 보여준다. print(f) print(f.na.. 더보기
[기타] 블로그에 Jupyter notebook 올리기 그동안 Jupyter notebook으로 작업을 하면서 다양한 Jupyter notebook 파일들을 티스토리 블로그에 올려야 했다. 인터넷을 통해 여러 가지 방법들을 찾았지만 , 뭔가 다들 내 블로그에 적용하기에는 2% 부족했었다. 지금까지 시도한 방법을 정리해 소개하고 혹시 다른 사람들도 나와 같은 문제점이 있다면 이 글을 읽고 해결하기 바라면서 글을 올린다. 방법 1 가장 기본적이고 찾아보면 첫 번째로 등장하는 방법이다. Jupyter notebook에서 File -> Print Preview -> Ctrl+U로 전체 html 소스코드 열기 -> Ctrl+A와 Ctrl+C로 전체를 복사해 내 티스토리 블로그 html 편집창에 그대로 붙여 넣기 위의 방법이 Jupyter notebook의 html 자.. 더보기
알고리즘 - Python / 백준 - 14921번 : 용액 합성하기 14921번: 용액 합성하기 (acmicpc.net) 14921번: 용액 합성하기 홍익대 화학연구소는 다양한 용액을 보유하고 있다. 각 용액은 -100,000,000부터 100,000,000사이의 특성 값을 갖는데, 같은 양의 두 용액을 혼합하면, 그 특성값은 두 용액의 특성값의 합이 된다. 당 www.acmicpc.net 풀이 오름차순으로 나열된 숫자들 중 2개를 더해서 가장 0에 가깝게 만드는 문제다. 문제를 딱 봤는데 어디서 본문제 같다. 알고리즘 - Python / 백준 - 2467번 : 용액 (tistory.com) 알고리즘 - Python / 백준 - 2467번 : 용액 2467번: 용액 (acmicpc.net) 2467번: 용액 첫째 줄에는 전체 용액의 수 N이 입력된다. N은 2 이상 10.. 더보기
알고리즘 - Python / 백준 - 1461번 : 도서관 1461번: 도서관 (acmicpc.net) 1461번: 도서관 세준이는 도서관에서 일한다. 도서관의 개방시간이 끝나서 세준이는 사람들이 마구 놓은 책을 다시 가져다 놓아야 한다. 세준이는 현재 0에 있고, 사람들이 마구 놓은 책도 전부 0에 있다. 각 책 www.acmicpc.net 풀이 수직선 상의 좌표에 책을 가져다 두어야 하고 , 한 번에 m개의 책을 들 수 있다. 이때 가장 적게 움직이면서 책을 가져다 두려면 얼마나 움직여야 하는지 구하는 문제다. 딱 봐도 그리디 스타일의 문제라고 생각하고 바로 예제를 뜯어보았다. 예제 1의 경우 [-39, -37, -29, -28, -6, 2, 11]이다. 마지막에는 책을 꽂고 원점으로 돌아올 필요가 없으므로 무조건 마지막에 좌우에서 가장 먼 부분의 책을 꽂는.. 더보기
알고리즘 - Python / 백준 - 13926번 : gcd(n, k) = 1 13926번: gcd(n, k) = 1 (acmicpc.net) 13926번: gcd(n, k) = 1 자연수 n이 주어졌을 때, gcd(n, k) = 1을 만족하는 자연수 1 ≤ k ≤ n 의 개수를 구하는 프로그램을 작성하시오. www.acmicpc.net 풀이 자연수 n이 주어졌을 때 , n보다 작고 gcd(n,k) = 1을 만족하는 자연수 k의 개수를 구하는 문제다. gcd(a,b)는 a와 b의 최대공약수를 의미하고 이 최대 공약수가 1이라는 뜻은 두 수가 서로소라는 뜻이다. 그러면 어떠한 수 n과 1 ~ n 까지의 k가 서로소인지 아닌지 판별해야 한다. 이때 , 다음과 같은 과정을 통해 알아낼 수 있다. 1. 어떠한 수 n을 소인수 분해 한다. 2. n을 소인수 분해한 수들이 p1,p2,p3.... 더보기
알고리즘 - Python / 백준 - 1990번 : 소수인팰린드롬 1990번: 소수인팰린드롬 (acmicpc.net) 1990번: 소수인팰린드롬 151은 소수이면서 동시에 팰린드롬이기 때문에 소수인 팰린드롬이다. 팰린드롬이란 앞으로 읽어나 뒤로 읽으나 같은 수를 말한다. 예를 들어 1234는 앞으로 읽으면 1234지만, 뒤로 읽으면 4321이 되 www.acmicpc.net 풀이 팰린드롬인 수들 중 범위 내의 소수들을 출력하면 되는 문제다. 일단 생각해보니 범위 내의 소수를 구하고 그중에 팰린드롬을 검사할지 , 범위 내의 팰린드롬을 구하고 소수인지 판별할지 정해야 했다. 5 ~ 1억 사이의 소수를 구하려면 에라토스테네스로 해도 되고 , 밀러 라빈이나 루트 N 까지 숫자를 넣어 소수인지 아닌지 판별하는 방식으로 구해야 한다. 에라토스테네스의 체는 거의 선형 시간의 시간 .. 더보기
알고리즘 - Python / 백준 - 9661번 : 돌 게임 7 9661번: 돌 게임 7 (acmicpc.net) 9661번: 돌 게임 7 첫째 줄에 N이 주어진다. (1 ≤ N ≤ 1,000,000,000,000) www.acmicpc.net 풀이 서로 돌을 n개씩 번갈아 가며 가져가다가 가져갈 돌이 없다면 패배하는 게임이다. 백준의 돌 게임 문제들은 게임이론과 관련된 문제로 개인적으로 상당히 좋아하는 문제다. 이전에 돌 게임6 에 관한 풀이도 작성하였다. 알고리즘 - Python / 백준 - 9660번 : 돌 게임 6 (tistory.com) 알고리즘 - Python / 백준 - 9660번 : 돌 게임 6 9660번: 돌 게임 6 (acmicpc.net) 9660번: 돌 게임 6 첫째 줄에 N이 주어진다. (1 ≤ N ≤ 1,000,000,000,000) www... 더보기
알고리즘 - Python / 백준 - 15686번 : 치킨 배달 15686번: 치킨 배달 (acmicpc.net) 15686번: 치킨 배달 크기가 N×N인 도시가 있다. 도시는 1×1크기의 칸으로 나누어져 있다. 도시의 각 칸은 빈 칸, 치킨집, 집 중 하나이다. 도시의 칸은 (r, c)와 같은 형태로 나타내고, r행 c열 또는 위에서부터 r번째 칸 www.acmicpc.net 풀이 정사각형 2차원 배열에 치킨집과 집의 위치가 주어지고 , m개의 치킨집만 남긴다고 할 때 , 집과 가장 가까운 치킨집의 거리가 가장 적게 나오는 경우의 치킨집과 집들 사이의 거리의 합을 출력하는 문제다. 한 줄에 문제를 표현하기 어려워 길게 썼으니 , 위의 문제 사이트에 가서 문제를 읽어보는 것을 추천한다. 일단 문제를 딱 보았을 때 , 2차원 배열 그래프 탐색 문제인가 하였으나 , 천천.. 더보기
반응형