분류 전체보기(113)
-
2018. 08. 15 백준 저지 알고리즘 정리(파이썬)
문제 1912 - 연속합 링크 - https://www.acmicpc.net/problem/1912 소스코드 import sys num = int(sys.stdin.readline()) arr = list(map(int, sys.stdin.readline().rstrip().split())) D = [0 for i in range(num)] D[0] = arr[0] for i in range(1, num): D[i] = max(D[i-1] + arr[i], arr[i]) sys.stdout.write(str(max(D))) 코멘트 솔직히 봐도 봐도 봐도 계속 틀려서 고심 끝에 답을 봐야했던 문제였다. 문제 접근 방법부터가 잘못 되었었다. 나는 D를 "해당 index까지 범위에서 가장 큰 연속합"으로 정의..
2018.08.16 -
2018. 08. 14 백준 저지 알고리즘 정리(파이썬)
문제 2156번 - 포도주 시식 링크 - https://www.acmicpc.net/problem/2156 소스코드 import sys wine = [] num = int(sys.stdin.readline()) for i in range(num): wine.append(int(sys.stdin.readline())) T = [[0 for i in range(2)] for j in range(num+1)] for i in range(1, num+1): T[i][0] = max(T[i-1]) if i > 1: T[i][1] = max(T[i-2][0] + wine[i-1] + wine[i-2], T[i-1][0] + wine[i-1]) else: T[i][1] = wine[i-1] sys.stdout.wri..
2018.08.15 -
카카오톡 채팅 로그 분석기(잉여력 분석기)
ChatLogAnalyzer(KakaoTalk) 제품 설명 안드로이드 폰에서 대화내용 내보내기로 얻어낸 카카오톡 채팅로그 txt 파일을 분석합니다. 대화 참여 인원 중 누가 몇 글자를 떠들었는지, 각 개인별로 많이 언급했던 키워드는 어떻게 되는지를 표시하고, 시간대별, 날짜별 데이터도 전부 분석이 됩니다. 현재 버전에서는 개인별 키워드 분석만이 콘솔 상에 표시가 되며, 나머지 데이터들은 .json 형식으로 /result/(텍스트 파일 이름)/ 폴더에 전부 저장됩니다. 제작 계기 코드를 보면 알겠지만 상당히 조악합니다. 이유인 즉슨, 파이썬을 막 배웠을 초창기에 만들었기 때문입니다. 16년도 겨울에 학교에서 파이썬을 배우면서, 파이썬을 가지고 좀 더 유의미한 프로젝트를 하고 싶어 조사를 해보다가, 파이썬에..
2018.08.14 -
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.14 -
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