Programming(32)
-
2018.08.12 백준 저지 알고리즘 정리(파이썬)
문제 1463 - 1로 만들기 링크 - https://www.acmicpc.net/problem/1463 소스코드 import sys import math num = int(sys.stdin.readline()) arr = [0]*(num+1) for i in range(1, num+1): if i == 1: continue val = [] if i % 3 == 0: val.append(arr[i//3] + 1) if i % 2 == 0: val.append(arr[i//2] + 1) val.append(arr[i-1] + 1) arr[i] = min(val) sys.stdout.write(str(arr[num])) 코멘트 딱히 없다. 다이나믹 프로그래밍의 전형적인 예. 문제 11726 - 2xN 타일링..
2018.08.13 -
2018. 08. 11 백준 저지 알고리즘 정리(파이썬)
문제 - 1158번 조세퍼스 순열 https://www.acmicpc.net/problem/1158 문제 조세퍼스 문제는 다음과 같다. 1번부터 N번까지 N명의 사람이 원을 이루면서 앉아있고, 양의 정수 M(≤ N)이 주어진다. 이제 순서대로 M번째 사람을 제거한다. 한 사람이 제거되면 남은 사람들로 이루어진 원을 따라 이 과정을 계속해 나간다. 이 과정은 N명의 사람이 모두 제거될 때까지 계속된다. 원에서 사람들이 제거되는 순서를 (N, M)-조세퍼스 순열이라고 한다. 예를 들어 (7, 3)-조세퍼스 순열은 이다. N과 M이 주어지면 (N,M)-조세퍼스 순열을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 N과 M이 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ M ≤ N ≤ 5,000) 출력 예제..
2018.08.12 -
2017. 08. 08 알고리즘 정리(백준 저지)
문제 1924번 - 2007년 https://www.acmicpc.net/problem/1924 문제 오늘은 2007년 1월 1일 월요일이다. 그렇다면 2007년 x월 y일은 무슨 요일일까? 이를 알아내는 프로그램을 작성하시오. 입력 첫째 줄에 빈 칸을 사이에 두고 x(1≤x≤12)와 y(1≤y≤31)이 주어진다. 참고로 2007년에는 1, 3, 5, 7, 8, 10, 12월은 31일까지, 4, 6, 9, 11월은 30일까지, 2월은 28일까지 있다. 출력 첫째 줄에 x월 y일이 무슨 요일인지에 따라 SUN, MON, TUE, WED, THU, FRI, SAT중 하나를 출력한다. 소스코드 month = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31] day = ['..
2018.08.09 -
Docker에서 Ubuntu 한글 locale 설정해서 빌드하기
요즘 파이썬으로 카카오톡 채팅 로그를 분석하는 프로그램으로 만들고 있는데, 필수 불가결하게 자연어 처리 패키지도 써야하고, 한글 인코딩도 신경을 써야합니다. euc-kr보다는 utf-8이 훨씬 나으니 utf-8을 써야하고, 더 나아가서 한글을 쓸 수 있는 환경일 수록 좋은데요. 무엇보다 자연어 처리 패키지가 파이썬이 아니라 OS 자체에 설치가 되고, 파이썬과 바인딩 해주는 패키지만 별도로 설치하는 형태라서 아무래도 배포하는 형태로 돌리려면 Docker 컨테이너를 쓰는게 낫다고 판단했습니다. 그런데 Docker에서 쓰는 Ubuntu 파일은 로케일 설정이 전혀 되어있지 않아서 모든 프로그램 구동 환경이 UTF-8이 아니게 되어서, 파이썬이 UTF-8의 텍스트 파일을 읽어오지 못하는 사태가 발생했었습니다. 구..
2018.08.07 -
지뢰찾기(MineSweeper) with JavaFX
지뢰찾기(MineSweeper) 1. 제품 설명 지뢰찾기를 한 번도 실행시켜보지 않은 사람은 아마 없을 것이라 봅니다. (요즘 어린 친구들은 뭔지 모를수도 있습니다..) 가려져있는 타일을 하나씩 누르면서 지뢰를 찾아가는 게임인데, 게임 이름은 지뢰찾기인 주제에 진짜로 지뢰를 클릭하면 게임 오버가 됩니다. 정식 이름은 MineSweeper로, 올바른 번역은 "지뢰제거"입니다. 지뢰는 전부 랜덤하게 숨겨져 있으며, 좌클릭으로 타일을 까볼 수 있고, 우클릭으로 해당 타일이 지뢰일지 아닐지를 표시해둘 수 있습니다. 지뢰가 아닐 것 같은 공간은 좌클릭을, 지뢰라고 의심되는 공간은 우클릭을 해가면서 지정된 개수의 지뢰를 전부 찾아낼 때까지 반복합니다. 지뢰 근처에 있는 타일은 모두 숫자를 표시합니다. 이 숫자는 해..
2018.07.20 -
매우 간단한 웹크롤링 - 이마트 휴점일
파이썬의 장점에는 배우기 쉽다, 인터프리터 기반의 스크립트 언어다 뭐 여러가지가 있지만 그 중 가장 큰 장점은 라이브러리가 많다는 점 아닐까 싶습니다. 자취하는 입장으로서 일요일에 아무 생각없이 이마트에 갔다가 휴점일이라서 낭패를 봤던 적이 많은데요. 그래서 나갈 때마다 폰으로 휴점일을 직접 검색해보는 게 불편하다 생각해서, 이를 따로 크롤링해서 띄워주면 어떨까 하는 생각을 했습니다. 찾아보니 그렇게까지 어렵지는 않더라구요. 이마트 휴점일은 다음 페이지에 게시되어 있습니다. https://store.emart.com/main/holiday.do 여기서 점포명을 검색하면 나오지만, 웹 크롤링에서는 조금 다르게 할 생각입니다. 파이썬에서 기본적으로 HTMLParser를 지원합니다만, 여기에선 더 많이 쓰이는..
2018.04.17