분류 전체보기
OpenCv와 CNN으로 손으로 적은 숫자 인식기 만들기
OpenCv와 CNN으로 손으로 적은 숫자 인식기 만들기
2020.06.30안녕하세요. 머신러닝 마지막 기말고사로 간단한 프로젝트를 만들 기회가 있어서 저는 OpenCV를 통한 숫자 인식기를 만들어보았습니다. CNN의 경우 MNIST를 통해서 인식 시키는 Model은 여기저기 예제가 많기 때문에 굳이 여기서 명시하지 않고 참고 했던 사이트들을 나열하겠습니다. 일단 이번 기회에 중점적으로 설명드릴 부분은 OpenCV를 통해서 숫자를 인식 시키는 것입니다. 1. OpenCV를 통해 숫자 인식시키기 일단 사진 속에서 "숫자"라는 것을 인식 시키는 것이 중요하다. 어떤 식으로 숫자를 인식 시킬 것인가라는 측면에서 이것저것 많이 시도 했다. 시도 자체는 많이 했던 것 같은데, 실제로 무슨 시도를 했었는지를 기록을 따로 하지 않아서 가장 최적의 결과가 나온 방식을 이야기해보겠습니다. (분..
[백준 - 1309번] 동물원 - 자바(JAVA) 정리 및 해설
[백준 - 1309번] 동물원 - 자바(JAVA) 정리 및 해설
2020.05.03이번에 풀어볼 문제는 DP문제인 동물원입니다. 1309번: 동물원 첫째 줄에 우리의 크기 N(1≤N≤100,000)이 주어진다. www.acmicpc.net 이문제는 오르막수와 비슷한 문제 양상을 띄고 있어서, 비슷한 문제 풀이를 이용했습니다. 이차원배열을 통해서 총 3가지의 경우를 나타냈는데 각각의 의미는 이렇습니다 Dp[n][0] -> 두 개의 방 중에 사자를 아예 넣지 않은 경우 Dp[n][1] -> 두 개의 방 중에 사자를 왼쪽 방에 넣은 경우 Dp[n][2] -> 두 개의 방 중에 사자를 오른쪽 방에 넣은 경우 즉, 이전 방의 경우의 수를 계속 취합해서 더할 수 있는습니다. 문제는 주어져있는 조건 "사자를 넣은 방에는 오른쪽방과 아랫방에는 넣을 수 없다" 라는 조건때문에, 사자를 넣지 않은 경우..
[백준 - 11057번] 오르막 수 - 자바(JAVA) 정리 및 해설
[백준 - 11057번] 오르막 수 - 자바(JAVA) 정리 및 해설
2020.05.03이번에 풀어볼 문제는 DP문제인 오르막 수입니다. 11057번: 오르막 수 오르막 수는 수의 자리가 오름차순을 이루는 수를 말한다. 이때, 인접한 수가 같아도 오름차순으로 친다. 예를 들어, 2234와 3678, 11119는 오르막 수이지만, 2232, 3676, 91111은 오르막 수가 아니다. 수의 길이 N이 주어졌을 때, 오르막 수의 개수를 구하는 프로그램을 작성하시오. 수는 0으로 시작할 수 있다. www.acmicpc.net 이 문제에서 핵심적으로 봐야할 것은 이차원 배열을 통해서 이 문제를 이해하는 방식이라고 생각합니다. 제가 이 문제에서 사용한 방식은 DP[][] 이렇게 있을때 앞의 [] 배열은 N을 뜻하고 뒤의 배열은 [] N에 따라 붙는 한자리 숫자를 뜻합니다. 글로 표현하기가 어려워서 ..
파이썬에서 리스트 안 리스트를 집합으로 만들때 해결방법
파이썬에서 리스트 안 리스트를 집합으로 만들때 해결방법
2020.03.18[Python] - 웹 크롤링으로 강원대학교 컴퓨터공학과 공지사항 텔레그램 봇 만들기에서 저는 한가지 기능을 만들어내고 있었는데요. 그 기능은 바로 최근 크롤링한 리스트와 이전 크롤링한 리스트를 비교해서 최신 게시물이 있으면 그 최신 게시물만 뱉어낼수 있게끔 처리하는 작업을 만들어내고 있었습니다. 이런 방식을 위해서는 list를 Set으로 만들어줘야했는데요. 저는 list안에 크롤링한 데이터들을 List로 가지고 있어서 Set으로 만들어주는데 문제가 발생했습니다. ㅠ TypeError: unhashable type: 'list' 파이썬을 많이 접해보지 않은 나로써 좀 당황하고 얼좀 탔는데 해결법은 예상보다 단순했는데요.. 파이썬에서 List는 변동가능하기때문에, 만들어지지 않는 것인데요. 즉, List를..
웹 크롤링으로 강원대학교 컴퓨터공학과 공지사항 텔레그램 봇 만들기
웹 크롤링으로 강원대학교 컴퓨터공학과 공지사항 텔레그램 봇 만들기
2020.03.18파이썬으로는 많은 개발을 할일이 없었는데, Telegram 봇을 만져보고 작동하다보니 꽤 재밌어서 학교 공지사항 봇을 만들게 되어서 포스팅 하게 되었습니다. 일단 왜 만들게 되었는지? 최근 코로나 19 사태로 학교에서 이런저런 공지사항이 올라오는데요. 어떤 공지사항은 꽤 중요하고, 어떤 사항은 저랑은 상관없는 소식이기도 하니, 이런 저런 공지사항을 읽어보거나 읽지 않거나 선택적으로 골라서 봐야했습니다. 그걸 제가 직접적으로 공지사항을 확인하기 위해서 매일매일 학교 공지사항을 확인하기는 너무 귀찮기도하고, 개인적으로 저희에게 메세지가 오는 것도 없어서 차라리 이런 공지가 올라올때마다 봇으로 알람을 울리게 하는 것이 좋다고 생각했습니다. 크롤링하기에는 저희 학과 홈페이지가 통합되면서 훨씬 크롤링하기에는 훨씬..
Spring Boot에서 XML을 추가하는 경우 발생하는 문제점과 해결방안
Spring Boot에서 XML을 추가하는 경우 발생하는 문제점과 해결방안
2020.03.07어떤식으로 문제가 발생하게 되었나? 현재 버스 앱을 만들고 있었습니다. 그래서 공공데이터 포탈에서 필요한 데이터를 뽑아서 가져와서 변환하는 프로그램을 만들었는데요. 문제는 공공 데이터 포탈에서 가져오는 데이터는 Json으로 데이터를 받아오면 데이터를 처리하는 데 있어서 여러가지 조건 사항들을 한번에 처리해주기가 너무 까다로워, 아예 저는 XML으로 파싱하는 것이 더 쉽다고 판단하고 그 데이터를 XML으로 받아서 파싱하는 방식으로 처리합니다. 이런 XML을 파싱하는 데이터를 빈에 올려서 파싱하는 함수를 따로 만들었지만 이상한 부분에서 문제가 발생합니다. 완전 이상한 문제 로컬환경 intellJ를 통해서 Run하는 경우는 문제없이 잘 작동하는 코드가, BootJAR 혹은 Install을 통해서 패키징되어 파..
Spring Boot와 React를 연동하여 개발환경을 만들어보자
Spring Boot와 React를 연동하여 개발환경을 만들어보자
2020.03.02이글을 읽어보기전에!! 한번 고려해볼 점을 제가 적어뒀습니다 한번 참고 해보고 프로젝트를 진행해주세요! [Java/Spring] - Spring Boot와 React를 통한 개발환경을 구성할때 고민해볼점 Spring Boot와 React를 통한 개발환경을 구성할때 고민해볼점 [Java/Spring] - Spring Boot와 React를 연동하여 개발환경을 만들어보자 Spring Boot와 React를 연동하여 개발환경을 만들어보자 이번에는 Spring Boot와 React를 연동하여 개발 환경을 만드는 과정을 이야기해보 sundries-in-myidea.tistory.com 이번에는 Spring Boot와 React를 연동하여 개발 환경을 만드는 과정을 이야기해보겠습니다. Spring Boot와 Rea..
[백준 - 16194번] 카드 구매하기 2 - 자바(JAVA) 정리 및 해설 & 1일 1DP - 10일차
[백준 - 16194번] 카드 구매하기 2 - 자바(JAVA) 정리 및 해설 & 1일 1DP - 10일차
2020.02.2916194번: 카드 구매하기 2 첫째 줄에 민규가 구매하려고 하는 카드의 개수 N이 주어진다. (1 ≤ N ≤ 1,000) 둘째 줄에는 Pi가 P1부터 PN까지 순서대로 주어진다. (1 ≤ Pi ≤ 10,000) www.acmicpc.net 어떤식으로 접근했는지? 이문제는 카드 구매하기 1에 이어 같은문제인데, 이번에는 최소값을 구하는 게 문제이다. 문제는 최소값을 찾으려면 각 N에 대해서 경우를 다 따져서 확인을 해봐야하는데, 이 최대값의 경우 경우의 수가 1개의 경우만 생기는데, 최소값의 경우 각 경우마다 최소값이 될 경우가 늘어난다고 생각했습니다. 그래서 N의 최소값을 구하기위해서 N-1~ 0 의 최소값을 최대로 더해주고, 부족한 카드를 실제로 남은 걸 더하는 방식으로 모든 카드를 채워 최소값을 만..
[백준 - 2225번] 합분해 - 자바(JAVA) 정리 및 해설 - 1일 1DP 9일차
[백준 - 2225번] 합분해 - 자바(JAVA) 정리 및 해설 - 1일 1DP 9일차
2020.02.272225번: 합분해 첫째 줄에 답을 1,000,000,000으로 나눈 나머지를 출력한다. www.acmicpc.net 어떤식으로 풀었나? 일단 이문제는 N의 정수를 K개를 가지고 만드는 경우를 찾아야합니다. 가장 쉽게 생각할 경우는 정수 1개를가지고 N을 만드는 경우와 정수 2개를 가지고 N을 만드는 경우인데요. 정수 1개를가지고 N을 만드는 경우는 무슨 정수든간에 1개 정수 2개를 가지고 N을 만드는 경우는 0~N까지 한가지 경우씩 있기때문에 N+1가지가 존재합니다. 이런 N과 K를 동시에 가지고 있어야하기때문에 DP배열을 2차원 배열로 만들어야합니다. 저의 경우 DP[K][N]식으로 배열을 만들어줬습니다. 즉 DP[1][3] 이라면, 3을 만들기위해서 정수 1개가지고 만드는 경우의 수라고 생각하면 됩..
[백준 - 2302번] 극장 좌석 - 자바(JAVA) 정리 & 1일 1DP - 8일차
[백준 - 2302번] 극장 좌석 - 자바(JAVA) 정리 & 1일 1DP - 8일차
2020.02.272302번: 극장 좌석 주어진 조건을 만족하면서 사람들이 좌석에 앉을 수 있는 방법의 가짓수를 출력한다. 방법의 가짓수는 2,000,000,000을 넘지 않는다. (2,000,000,000 < 231-1) www.acmicpc.net 어떤식으로 풀었는지? 이번 문제 역시 DP문제이다. 핵심은 결국에 고정된 VIP석을 제외한 나머지 가짓수에 대해서 곱으로 전체 경우를 구한다는 것. 두번째는 Vip좌석을 통해서 남겨진 좌석을 지정된 방법으로 섞었을때 가능한 경우의 수 찾는 것. 완벽하게 이문제를 풀지를 못했고, 이분의 블로그를 많이 참고해서 풀었다 http://blog.naver.com/occidere/220854811310 [백준] 2302 - 극장 좌석 문제 링크 : https://www.acmicpc...
[백준 - 1904번] 01타일 - 자바(JAVA) 정리 및 해설 &1일 1DP- 7일차
[백준 - 1904번] 01타일 - 자바(JAVA) 정리 및 해설 &1일 1DP- 7일차
2020.02.271904번: 01타일 지원이에게 2진 수열을 가르쳐 주기 위해, 지원이 아버지는 그에게 타일들을 선물해주셨다. 그리고 이 각각의 타일들은 0 또는 1이 쓰여 있는 낱장의 타일들이다. 어느 날 짓궂은 동주가 지원이의 공부를 방해하기 위해 0이 쓰여진 낱장의 타일들을 붙여서 한 쌍으로 이루어진 00 타일들을 만들었다. 결국 현재 1 하나만으로 이루어진 타일 또는 0타일을 두 개 붙인 한 쌍의 00타일들만이 남게 되었다. 그러므로 지원이는 타일로 더 이상 크기가 N인 모든 2진 수 www.acmicpc.net 어떤식으로 풀었는가? 01타일은 동적계획법으로 푸는 문제이다. 01타일의 특이한 점은 n에따른 증가폭이 어디서 본것 같은 모양새로 증가합니다. N = 1일때 1개 (1) N =2 일때 2개 (00, 11..
[백준 - 6359번] 만취한 상범 - 자바(JAVA) 정리 및 해설 & 1일 1DP -6일차
[백준 - 6359번] 만취한 상범 - 자바(JAVA) 정리 및 해설 & 1일 1DP -6일차
2020.02.27안녕하세요. 오늘 풀어 볼 문제는 만취한 상범입니다. 6359번: 만취한 상범 문제 서강대학교 곤자가 기숙사의 지하에는 n개의 방이 일렬로 늘어선 감옥이 있다. 각 방에는 벌점을 많이 받은 학생이 구금되어있다. 그러던 어느 날, 감옥 간수인 상범이는 지루한 나머지 정신나간 게임을 하기로 결정했다. 게임의 첫 번째 라운드에서 상범이는 위스키를 한 잔 들이키고, 달려가며 감옥을 한 개씩 모두 연다. 그 다음 라운드에서는 2, 4, 6, ... 번 방을 다시 잠그고, 세 번째 라운드에서는 3, 6, 9, ... 번 방이 열려있으면 잠그고 www.acmicpc.net DP라고 하기에는 애매한 부분이 있긴하지만, 그래도 처음에 풀기에 무난한 문제입니다. 어떤식으로 풀었는지? 방을 int로 만들고 (물론, int로..