본문 바로가기

전체 글

2018. 08. 13 백준 저지 알고리즘 정리(파이썬) 오늘은 별거 없다. 문제 9465 - 스티커 링크 - https://www.acmicpc.net/problem/9465 소스코드 import sys num = int(sys.stdin.readline()) result = '' for i in range(num): size = int(sys.stdin.readline()) arr = [[0] * 2 for i in range(size)] line = sys.stdin.readline().rstrip() line += ' ' + sys.stdin.readline().rstrip() for (j, e) in enumerate(line.split()): arr[j % size][j // size] = int(e) T = [[0] * 3 for i in rang.. 더보기
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. 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) 출력 예제.. 더보기
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 = ['.. 더보기
Docker에서 Ubuntu 한글 locale 설정해서 빌드하기 요즘 파이썬으로 카카오톡 채팅 로그를 분석하는 프로그램으로 만들고 있는데, 필수 불가결하게 자연어 처리 패키지도 써야하고, 한글 인코딩도 신경을 써야합니다. euc-kr보다는 utf-8이 훨씬 나으니 utf-8을 써야하고, 더 나아가서 한글을 쓸 수 있는 환경일 수록 좋은데요. 무엇보다 자연어 처리 패키지가 파이썬이 아니라 OS 자체에 설치가 되고, 파이썬과 바인딩 해주는 패키지만 별도로 설치하는 형태라서 아무래도 배포하는 형태로 돌리려면 Docker 컨테이너를 쓰는게 낫다고 판단했습니다. 그런데 Docker에서 쓰는 Ubuntu 파일은 로케일 설정이 전혀 되어있지 않아서 모든 프로그램 구동 환경이 UTF-8이 아니게 되어서, 파이썬이 UTF-8의 텍스트 파일을 읽어오지 못하는 사태가 발생했었습니다. 구.. 더보기
맥북 프로 13인치(논 터치바) 구매기 ※ 앞부분이 쓸데없이 긴 글입니다. 간략한 구매 소감 등을 원하시면 스크롤 휙휙 내리면서 이미지 위주로 읽으세요. 구매 계기 2년전에 딱 서피스 구매기를 올린 적 있습니다. 서피스 3 (논 프로 모델)을 샀었죠. 서피스 3도 꽤 나쁘지 않은 태블릿입니다. 지금은 또 디바이스들의 스펙이 올랐으니 평가가 애매하긴 하지만, 당시 상황 고려하면 꽤 괜찮았고, 휴대성과 생산성 면에서 굉장히 좋은 태블릿이었죠. 2년동안 Pdf 파일을 서피스에 넣어서 강의를 듣고 다녔습니다. 그러나 역시 저스펙으로 나온 디바이스이니 만큼, 한계(?)가 올 때도 자주 있었습니다. 특히, 저같이 코딩을 해야하는 학부생 입장에선 가끔 그게 치명적이게 다가오기도 했죠. 그걸 최초로 느낀게, 모바일 프로그래밍 강의 들을 때였습니다. 안드로이.. 더보기
지뢰찾기(MineSweeper) with JavaFX 지뢰찾기(MineSweeper) 1. 제품 설명 지뢰찾기를 한 번도 실행시켜보지 않은 사람은 아마 없을 것이라 봅니다. (요즘 어린 친구들은 뭔지 모를수도 있습니다..) 가려져있는 타일을 하나씩 누르면서 지뢰를 찾아가는 게임인데, 게임 이름은 지뢰찾기인 주제에 진짜로 지뢰를 클릭하면 게임 오버가 됩니다. 정식 이름은 MineSweeper로, 올바른 번역은 "지뢰제거"입니다. 지뢰는 전부 랜덤하게 숨겨져 있으며, 좌클릭으로 타일을 까볼 수 있고, 우클릭으로 해당 타일이 지뢰일지 아닐지를 표시해둘 수 있습니다. 지뢰가 아닐 것 같은 공간은 좌클릭을, 지뢰라고 의심되는 공간은 우클릭을 해가면서 지정된 개수의 지뢰를 전부 찾아낼 때까지 반복합니다. 지뢰 근처에 있는 타일은 모두 숫자를 표시합니다. 이 숫자는 해.. 더보기
일본어 단어 암기장 엑셀파일 티스토리도 가면 갈수록 등신이 되어가는 느낌이 듭니다. 파일 업로드 창에서 크롬이 다 꺼져버리다니.. 여하튼 소개하겠습니다. 1. 제품(?) 소개 일단어 암기장입니다. 상용 일단어 같은게 들어있는 게 아니고, 여러분이 직접 외우고 싶은 일본어 단어들을 입력하고, 순서를 섞고 일부 값들을 가린 다음, 출력하거나 머릿 속으로 스스로 단어 시험을 볼 수 있습니다. 2. 제작 계기 제 주전공이 일본어학이므로, 전공 시험을 볼 때 일본어 단어들을 필수적으로 외워야만 했습니다. 처음엔 노트에 단어들을 옮겨적고 자 같은 걸로 가리면서 암기했었는데, 이게 단어의 순서를 똑같게 하여 외우게 되다보니 어떤 단어를 콕 집어 꺼냈을 때, 쉽게 뜻을 떠올리지 못하는 현상들이 생겼었습니다. 맥락에 의존해서 암기를 하다보니 생긴 .. 더보기