Archive: 2019/1

문자열 내 마음대로 정렬하기

문제 설명문자열로 구성된 리스트 strings와, 정수 n이 주어졌을 때, 각 문자열의 인덱스 n번째 글자를 기준으로 오름차순 정렬하려 합니다. 예를 들어 strings가 [“sun”, “bed”, “car”]이고 n이 1이면 각 단어의 인덱스 1의 문자 “u”, “e”, “a”로 strings를 정렬합니다. 제한 조건 strings는 길이 1 이상, 50

체육복

문제 설명오늘은 체육수업이 있는 날입니다. 그런데 점심시간에 도둑이 들어 몇몇 학생의 체육복이 도난을 당했습니다. 다행히 일부 학생들이 여벌의 체육복을 가져왔습니다. 학생들의 번호는 체격 순으로 매겨져 있기 때문에 바로 앞번호의 학생이나 바로 뒷번호의 학생에게만 체육복을 빌려주려고 합니다. 예를 들어, 4번 학생은 3번 학생이나 5번 학생에게만 체육복을 빌

K번째수

문제 설명배열 array의 i번째 숫자부터 j번째 숫자까지 자르고 정렬했을 때, k번째에 있는 수를 구하려 합니다. 예를 들어 array가 [1, 5, 2, 6, 3, 7, 4], i = 2, j = 5, k = 3이라면 array의 2번째부터 5번째까지 자르면 [5, 2, 6, 3]입니다. 1에서 나온 배열을 정렬하면 [2, 3, 5, 6]입니다. 2에

pyenv, virtualenv, autoenv

pyenv 파이썬 버전을 관리하는 툴 하나의 컴퓨터에 다양한 파이썬 버전을 설치하고 관리 pyenv-virtualenv virtualenv은 파이썬 환경을 격리하는 툴 pyenv-virtualenv은 virtualenv의 pyenv 확장 플러그인 파이썬 버전과 라이브러리의 완전한 격리 환경을 제공 autoenv autoenv는 디렉터리 이동 시 실행되는

모의고사

문제 설명수포자는 수학을 포기한 사람의 준말입니다. 수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려 합니다. 수포자는 1번 문제부터 마지막 문제까지 다음과 같이 찍습니다. 1번 수포자가 찍는 방식: 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, …2번 수포자가 찍는 방식: 2, 1, 2, 3, 2, 4, 2, 5, 2, 1, 2, 3, 2, 4,

완주하지 못한 선수

문제 설명수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수들의 이름이 담긴 배열 completion이 주어질 때, 완주하지 못한 선수의 이름을 return 하도록 solution 함수를 작성해주세요. 제한사항 마라

crontab

리눅스 크론탭 사용법 “특정 시간에 특정 작업을 해야한다.” 1. 크론탭 기본 (crontab basic)12345678910111213# 크론탭 실행crontab -e# 현재 크론탭에 어떤 내용이 들어있는지 보기crontab -l# 크론탭을 지우고 싶을 때crontab -r# 저장은 vi 처럼 콜론(:) 입력 후 wq로 갱신***** ls -al# 별

그래프 이론 기초

그래프(graph)는 다음 그림처럼 노드(node, vertex)와 그 사이를 잇는 간선(edge)으로 이루어진 구조를 말한다. 123456789import networkx as nxfrom IPython.core.display import Imagefrom networkx.drawing.nx_pydot import to_pydotg = nx.complet

Affinity Propagation

모든 데이터가 특정한 기준에 따라 자신을 대표할 대표 데이터를 선택한다. 만약 스스로가 자기 자신을 대표하게 되면 클러스터의 중심이 된다. responsibility $r(i,k)$ $k$ 번째 데이터가 $i$ 번째 데이터의 대표가 되어야 한다는 증거 availability $a(i, k)$ $i$ 번째 데이터가 $k$ 번째 데이터를 대표로 선택해야

계층적 클러스터링

계층적 클러스터링은 하나의 데이터 샘플을 하나의 클러스터로 보고 가장 유사도가 높은 클러스터를 합치면서 클러스터 갯수를 줄여 가는 방법을 말한다. 클러스터간의 거리 측정클러스터간의 비유사도(dissimilarity) 혹은 거리(distance)를 측정하는 방법에는 다음과 같은 것이 있다. 비귀납적 방법centroid 두 클러스터의 중심점(centroid)를