단어 변환

문제 풀기 두 개의 단어 begin, target과 단어의 집합 words가 있습니다. 아래와 같은 규칙을 이용하여 begin에서 target으로 변환하는 가장 짧은 변환 과정을 찾으려고 합니다. 예를 들어 begin이 hit, target가 cog, words가 [hot,dot,dog,lot,log,cog]라면 hit -> hot -> dot -> dog -> cog와 같이 4단계를 거쳐 변환할 수 있습니다. 두 개의 단어 begin, target과 단어의 집합 words가 매개변수로 주어질 때, 최소 몇 단계의 과정을 거쳐 begin을 target으로 변환할 수 있는지 return 하도록 solution […]

기능 개발

문제풀기 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 기능보다 먼저 개발될 수 있고, 이때 뒤에 있는 기능은 앞에 있는 기능이 배포될 때 함께 배포됩니다. 먼저 배포되어야 하는 순서대로 작업의 진도가 적힌 정수 배열 progresses와 각 작업의 개발 속도가 적힌 […]

크레인 인형뽑기 게임

문제풀기 게임개발자인 죠르디는 크레인 인형뽑기 기계를 모바일 게임으로 만들려고 합니다.죠르디는 게임의 재미를 높이기 위해 화면 구성과 규칙을 다음과 같이 게임 로직에 반영하려고 합니다. 게임 화면은 1 x 1 크기의 칸들로 이루어진 N x N 크기의 정사각 격자이며 위쪽에는 크레인이 있고 오른쪽에는 바구니가 있습니다. (위 그림은 5 x 5 크기의 예시입니다). 각 격자 칸에는 다양한 인형이 들어 있으며 인형이 없는 칸은 빈칸입니다. 모든 인형은 1 x 1 크기의 격자 한 […]

FTPS(FTP+SSL) 설정

일반 FTP는 보안 프토콜이 전혀 적용되어 있지 않기때문에 악의적인 공격에 의해 노출될 수 있다. 그래서 SSL을 이용한 보안 프로토콜을 설정하는 방법을 살펴보도록 하겠다. 기존의 vsftpd의 설정에서 몇가지만 변경해주면 간단하게 FTPS를 사용할 수 있으므로 보안이 염려되는 사용자는 적용하길 바란다. FTP 보안 프로토콜(SFTP, Secure FTP, FTPS) 우선적으로 pem키를 저장할 위치를 생성하기 위해   sudo mkdir -p /etc/vsftpd/ssl sudo chmod 700 /etc/vsftpd/ssl 명령어를 […]

TVheadend 설치 및 설정하기

NAS를 통해 IPTV나 케이블TV를 스트리밍하거나 EPG를 통해 예약녹화를 할 수 있게 해주는 TVheadend를 설치하고 설정하는 방법을 알아보자. 우선적으로 아래의 명령어를 이용해서 TVheadend를 설치해준다. sudo apt-key adv –keyserver hkp://keyserver.ubuntu.com:80 –recv-keys 379CE192D401AB61 sudo echo “deb https://dl.bintray.com/tvheadend/deb xenial unstable” | sudo tee -a /etc/apt/sources.list sudo apt-get update sudo apt-get install tvheadend 설치중 사용자계정과 암호를 입력하는 부분이 나오는데, TVheadend의 관리자 계정과 암호를 설정하는 부분이므로 […]

evasive를 통한 DDOS 방어하기

DDOS공격으로 인한 서버다운을 막기 위해 연속적인 접속이 발생하면 특정시간동안 접속을 차단해주는 Mod를 사용해 방어하는 방법을 알아보자 연속적인 접속이 발생하면 403페이지를 표시한다. 우선적으로 MOD사용을 위해 sudo apt-get install libapache2-mod-evasive 명령어를 통해 MOD를 설치해준다. sudo mkdir /var/log/evasive 그 후 MOD로그를 저장할 디렉토리를 생성한다. sudo chown www-data:www-data /var/log/evasive/ MOD로그 디렉토리의 소유자와 소유그룹을 변경해준다. sudo vim /etc/apache2/mods-available/evasive.conf 그 후 evasive 설정파일을 열어 <ifmodule mod_evasive20.c> […]