메인 프로젝트 목록
-
유전 알고리즘으로 사이클로이드 유도하기 [1]
Making Cycloid by Genetic Algorithm 0. 개요 사이클로이드가 최소 강하 곡선인 이유를 탐구하다, 해당 내용을 보고 사이클로이드를 유도하는 방법을 알게 되었다. https://suhak.tistory.com/88 사이클로이드(cycloid) 사이클로이드란? 구르는 원 위에 있는 한 정점이 그리는 자취를 사이클로이드라고 부른다. 위키백과로 가기 그림에서 원점과 접해있던 반지름이 1인 원이 $x$축을 따라 $t$만큼 굴러갔을 때 원점 suhak.tistory.com 또한 여기서 사이클로이드를 그릴 수 있었는데, 해당 코드는 다음과 같다. from math import sin, cos, pi import numpy as np import matplotlib.pyplot as plt ..
-
[Python] 스도쿠 풀이 프로그램 #1
스도쿠는 재미있는 게임이다. 9 * 9 칸 안에서 한 세로줄, 한 가로줄, 한 블록(3*3 칸, 여기서는 '블록'이라는 표현을 쓰겠음) 안에 1부터 9까지의 자연수가 겹치지 않도록 배열하는 규칙 내에서 모든 칸의 수를 채우는 게임이다. 예) 9 1 5 2 5 3 1 4 9 8 2 7 2 5 9 8 4 1 9 5 5 9 2 7 3 1 4 5 9 6 3 6 1 5 9 8 7 5 정답은 아래와 같다. 9 3 6 2 1 8 7 4 5 8 2 4 7 5 3 1 9 6 5 1 7 4 9 6 8 3 2 7 6 2 5 3 1 9 8 4 3 8 1 6 4 9 2 5 7 4 5 9 8 2 7 6 1 3 1 4 5 9 6 2 3 7 8 6 7 3 1 8 5 4 2 9 2 9 8 3 7 4 5 6 1 이와 같이 빈 숫자들을 ..
-
[WEB] 스도쿠 풀이 프로그램 #4
이전 글에서 python으로 만들었던 스도쿠 풀이 프로그램을 누구나 바로 사용할 수 있도록 html, css, js로 다시 만들어보았다. 간단하게 알고리즘을 설명하자면 입력받은 스도쿠가 해결가능한지 확인한다. 재귀함수로 구현한 백트래킹 알고리즘을 사용해 입력받은 스도쿠의 해를 찾는다. 만약 해가 있다면, 밑에 출력한다. 해를 찾을 수 없다면, 'Unable To solve Sudoku'를 출력한다. 소스코드 참고 - https://github.com/siejwkaodj/sudoku_solver_online Sudoku Solver Made by Hansj 설명 빈 칸에 스도쿠에 적혀있는 1-9 사이의 숫자를 입력하세요. 0을 입력하면 다음 칸으로 넘어갑니다. 파일 업로드는 .csv 또는 .txt파일만 가..
-
[Python] 조합 알고리즘 구현하기
백준 2798번을 풀다 조합을 이용한 풀이를 생각했고, 이전에 모듈로 Combination을 가져다 쓴 기억이 있어 한번 직접 만들어 보는 것도 좋겠다 싶어 Combination을 구하는 알고리즘을 만들어 보았다. 만약 빠르게 조합을 구현하고 싶다면 itertools 라이브러리를 import 해서 조합, 순열 등을 구현할 수 있다. 이는 다음 블로그에 잘 정리되어 있다 https://yganalyst.github.io/etc/memo_18_itertools/ [Python] itertools, 원소의 경우의 수(순열, 조합) 추출하기 itertools 라이브러리를 활용해서 원소들의 경우의 수를 추출하는 방법을 배워보자. yganalyst.github.io 조합의 정의는 다음과 같다. (출처 : https..
최신 글 리스트
-
241119 배운점
project 링크https://github.com/fclipse/namdo-haksuk-notice배운점들1. python crawler 사용법이 부분은 BeautifulSoup 라이브러리를 사용하여 HTML 문서에서 특정 요소들을 선택하는 코드입니다. 이 코드는 div 태그 중 클래스가 board-list-wrap인 요소 내의 tbody 태그 안에 있는 모든 tr 태그들을 선택합니다.클래스와 ID 선택자를 BeautifulSoup에서 사용하려면 CSS 선택자를 사용하면 됩니다. 예를 들어, 클래스 선택자는 .을 사용하고, ID 선택자는 #을 사용합니다.예시:클래스 선택자 사용:# 클래스가 'example-class'인 모든 요소 선택elements = soup.select('.example-class..
-
[REACT] react-router-dom 및 module.css 사용 중 이슈
개요react-router-dom을 이용해 nav바를 만들어 routing을 제어하고, activeclassname 속성을 활용하여 nav바에서 선택된 이름을 표시하는 기능을 구현했었다. Home Category Tags About 문제상황그런데 css modules을 이용하면서 문제가 생겼었는데, css modules에선 className 및 일부 요소들만 뒤에 hash를 붙여서 고유하게 되기 때문에 activeclassname으로 지정한 .active 클래스 이름이 적용되는 과정에서 문제가 생겼다.activeclassname으로 지정한 .active 클래스가 (해당 path일때 클래스가 추가됨) 분명 styles.을 붙여서 넣었는데도 뒤에 해시가 붙지 않고 들어가는 문제가 ..
-
[Flutter] Provider context.selector ListView 안에서 직접 사용 불가 문제
사전지식 provider의 context.selector(....)는 selector에 등록된 변수의 값이 바뀌는지 tracking하고, 값이 바뀌면 해당 위젯을 rebuild하는 메소드이다. context.watch()도 있지만 wathc는 해당 값 말고 같은 changeNotifier 안에 등록된 다른 값이 바뀌어도 rebuild가 일어나 selector를 사용하면 불필요한 rebuild를 줄일 수 있다. 문제상황 ════════ Exception caught by widgets library ═══════════════════════════════════ The following assertion was thrown building: Tried to use context.select inside a..
-
[WEB] 스도쿠 풀이 프로그램 #4
이전 글에서 python으로 만들었던 스도쿠 풀이 프로그램을 누구나 바로 사용할 수 있도록 html, css, js로 다시 만들어보았다. 간단하게 알고리즘을 설명하자면 입력받은 스도쿠가 해결가능한지 확인한다. 재귀함수로 구현한 백트래킹 알고리즘을 사용해 입력받은 스도쿠의 해를 찾는다. 만약 해가 있다면, 밑에 출력한다. 해를 찾을 수 없다면, 'Unable To solve Sudoku'를 출력한다. 소스코드 참고 - https://github.com/siejwkaodj/sudoku_solver_online Sudoku Solver Made by Hansj 설명 빈 칸에 스도쿠에 적혀있는 1-9 사이의 숫자를 입력하세요. 0을 입력하면 다음 칸으로 넘어갑니다. 파일 업로드는 .csv 또는 .txt파일만 가..
-
[C++] 파일 입출력 - dfs [2]
저번 글에 이어 이번 글에서는 그래프를 읽어온 결과를 바탕으로 그래프 상에서 dfs를 해보겠다. 0. 그래프 구조 먼저, 저번 글에서 사용한 그래프 구조를 직접 그리면 다음과 같다. 1. dfs 코드 dfs는 Depth-First-Search의 약자로 현재 정점에서 다음 정점으로 갈 수 있는 경우, 탐색을 계속하며 다음 정점이 없는 경우에는 부모 정점으로 돌아가 다시 갈 수 있는 정점가 있는지 판단한다. 다음 정점이 있는 경우 계속해서 탐색을 하기 때문에 트리에서 탐색할 경우, 루트 노드에서 계속해서 높이를 내려가면서 탐색을 하므로 dfs라는 이름이 붙었다. 코드 전반은 다음과 같다. int dfs(vector &graph, vector& visited, int n){ cout