프로그래머스 2단계 - 짝지어 제거하기
2021. 1. 18. 21:59
⏰ 코딩테스트/프로그래머스
문제 설명 짝지어 제거하기는, 알파벳 소문자로 이루어진 문자열을 가지고 시작합니다. 먼저 문자열에서 같은 알파벳이 2개 붙어 있는 짝을 찾습니다. 그 다음, 그 둘을 제거한 뒤, 앞뒤로 문자열을 이어 붙입니다. 이 과정을 반복해서 문자열을 모두 제거한다면 짝지어 제거하기가 종료됩니다. 문자열 S가 주어졌을 때, 짝지어 제거하기를 성공적으로 수행할 수 있는지 반환하는 함수를 완성해 주세요. 성공적으로 수행할 수 있으면 1을, 아닐 경우 0을 리턴해주면 됩니다. 예를 들어, 문자열 S = baabaa 라면 b aa baa → bb aa → aa → 의 순서로 문자열을 모두 제거할 수 있으므로 1을 반환합니다. 제한사항 문자열의 길이 : 1,000,000이하의 자연수 문자열은 모두 소문자로 이루어져 있습니다...
Docker - 처음 Docker 접할때 오는 멘붕 몇가지
2021. 1. 18. 15:58
🚦 Server/Docker
Docker는 Virtual machine이 아니다! 처음 docker를 실행할 때 다음과 같은 명령을 실행하면 우분투 서버가 실행된다고 생각했다. 즉, Virtual machine과 같이 컨테이너 내에 우분투 서버가 실행되는 줄 알았다. $ docker run --name ubuntu_test ubuntu 위 명령을 실행하면 그냥 아무것도 실행하지 않은 것처럼 아무런 변화가 없다. 다만 다음과 같이 실행되지 않는 docker container를 보는 옵션(-a)을 주고 docker container의 목록을 보면 종료(Exit)되었다고 나타나기는 한다. $ docker ps -a d8f31b2635d9 ubuntu "/bin/bash" 19 seconds ago Exited (0) 17 seconds ..
Docker - tutorial
2021. 1. 18. 15:44
🚦 Server/Docker
docker run ubuntu:16.04 run명령어를 사용하면 사용할 이미지가 저장되어 있는지 확인하고 없다면 다운로드(pull)를 한 후 컨테이너를 생성(create)하고 시작(start) 합니다. 위 예제는 ubuntu:16.04 이미지를 다운받은 적이 없기 때문에 이미지를 다운로드 한 후 컨테이너가 실행되었습니다. 컨테이너는 정상적으로 실행됐지만 뭘 하라고 명령어를 전달하지 않았기 때문에 컨테이너는 생성되자마자 종료됩니다. 컨테이너는 프로세스이기 때문에 실행중인 프로세스가 없으면 컨테이너는 종료됩니다. 이번에는 /bin/bash 명령어를 입력해서 ubuntu:16.04 컨테이너를 실행해 보겠습니다. 컨테이너 내부에 들어가기 위해 bash 쉘을 실행하고 키보드 입력을 위해 -it 옵션을 줍니다. ..
Deepsurv - method 및 관련 개념
2021. 1. 18. 12:40
📌 Paper/Deepsurv
3 Methods In this section, we describe our methodology for providing personalized treatment recommendations using DeepSurv. First, we describe the architecture and training details of DeepSurv, an open source Python module that applies recent deep learning techniques to a nonlinear Cox proportional hazards network. Second, we define DeepSurv as a prognostic model and show how to use the network’..
프로그래머스 2단계 - 전화번호부
2021. 1. 15. 16:27
⏰ 코딩테스트/프로그래머스
문제 설명 전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다. 전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다. 구조대 : 119 박준영 : 97 674 223 지영석 : 11 9552 4421 전화번호부에 적힌 전화번호를 담은 배열 phone_book 이 solution 함수의 매개변수로 주어질 때, 어떤 번호가 다른 번호의 접두어인 경우가 있으면 false를 그렇지 않으면 true를 return 하도록 solution 함수를 작성해주세요. 제한 사항 phone_book의 길이는 1 이상 1,000,000 이하입니다. 각 전화번호의 길이는 1 이상 20 이하입니다. 입출력 예제 phone book return [119, 976..
프로그래머스 2단계 - 행렬 곱
2021. 1. 14. 10:17
⏰ 코딩테스트/프로그래머스
문제 설명 2차원 행렬 arr1과 arr2를 입력받아, arr1에 arr2를 곱한 결과를 반환하는 함수, solution을 완성해주세요. 제한 조건 행렬 arr1, arr2의 행과 열의 길이는 2 이상 100 이하입니다. 행렬 arr1, arr2의 원소는 -10 이상 20 이하인 자연수입니다. 곱할 수 있는 배열만 주어집니다. 코드 import numpy as np def solution(arr1, arr2): a = np.matrix(arr1) b = np.matrix(arr2) answer = np.dot(a, b).tolist() return answer numpy의 matrix 기능을 이용하여 간단하게 행렬을 만들 수 있다. 두 행렬을 곱한 뒤 리스트로 변환해주어 리턴하면 된다. 반복문을 이용한 ..
프로그래머스 2단계 - 피보나치
2021. 1. 13. 19:28
⏰ 코딩테스트/프로그래머스
문제 설명 피보나치 수는 F(0) = 0, F(1) = 1일 때, 1 이상의 n에 대하여 F(n) = F(n-1) + F(n-2) 가 적용되는 수 입니다. 예를들어 F(2) = F(0) + F(1) = 0 + 1 = 1 F(3) = F(1) + F(2) = 1 + 1 = 2 F(4) = F(2) + F(3) = 1 + 2 = 3 F(5) = F(3) + F(4) = 2 + 3 = 5 와 같이 이어집니다. 2 이상의 n이 입력되었을 때, n번째 피보나치 수를 1234567으로 나눈 나머지를 리턴하는 함수, solution을 완성해 주세요. 제한 사항 * n은 1이상, 100000이하인 자연수입니다. 입출력 예 n return 3 2 5 5 입출력 예 설명 피보나치수는 0번째부터 0, 1, 1, 2, 3, ..
Docker - Dockerhub에 image 올리기
2021. 1. 13. 17:54
🚦 Server/Docker
Dockerhub에 image 올리기 ➜ ~ docker run -it --name MyNginx ubuntu:latest repository 업데이트 하기 root@15164209bbdf:/# apt-get update nginx를 설치해보자 root@15164209bbdf:/# apt-get install nginx nginx가 설치된 것을 확인할 수 있다. $ root@15164209bbdf:/# which nginx >> /usr/sbin/nginx curl command 설치하기 root@15164209bbdf:/# apt-get install curl nginx landing page를 확인할 수 있다. root@15164209bbdf:/# service nginx start * Startin..
Docker - container 제거하기
2021. 1. 13. 16:43
🚦 Server/Docker
컨테이너 상대로 명령어 실행 실행 중인 컨테이너 상대로 명령어를 날리고 싶다면 docker exec 커맨드를 사용합니다. 예를 들어, 어떤 컨테이너를 상대로 ls 커맨드를 실행하고 싶다면 다음과 같이 하면 됩니다. -it 옵션을 사용하면 해당 컨테이너의 쉘(shell)과 작접 상호작용하면서 연속으로 명령어를 실행할 수 있습니다. -it 옵션 -i 옵션과 -t 옵션은 같이 쓰이는 경우가 매우 많은데요. 이 두 옵션은 컨테이너를 종료하지 않은체로, 터미널의 입력을 계속해서 컨테이너로 전달하기 위해서 사용합니다. 따라서, -it 옵션은 특히 컨테이너의 쉘(shell)이나 CLI 도구를 사용할 때 매우 유용하게 사용됩니다. 컨테이너 제거 컨테이너를 제거하고 싶을 때는 docker rm 커맨드를 사용합니다. 중지..
백준 알고리즘 - 2447 - 별찍기
2021. 1. 12. 11:37
⏰ 코딩테스트/백준 알고리즘
문제 재귀적인 패턴으로 별을 찍어 보자. N이 3의 거듭제곱(3, 9, 27, ...)이라고 할 때, 크기 N의 패턴은 N×N 정사각형 모양이다. 크기 3의 패턴은 가운데에 공백이 있고, 가운데를 제외한 모든 칸에 별이 하나씩 있는 패턴이다. *** * * *** N이 3보다 클 경우, 크기 N의 패턴은 공백으로 채워진 가운데의 (N/3)×(N/3) 정사각형을 크기 N/3의 패턴으로 둘러싼 형태이다. 예를 들어 크기 27의 패턴은 예제 출력 1과 같다. 입력 첫째 줄에 N이 주어진다. N은 3의 거듭제곱이다. 즉 어떤 정수 k에 대해 N=3k이며, 이때 1 ≤ k < 8이다. 출력 첫째 줄부터 N번째 줄까지 별을 출력한다. 코드 n = int(input()) star = ["***","* *","***"..
생존 함수, Cox hazard model
2021. 1. 11. 15:49
📌 Paper/Deepsurv
모수적 방법(parametric method): 관측 값이 어느 특정한 확률분포, 예를 들면 정규분포, 이항분 포 등을 따른다고 전제한 후 그 분포의 모수(parameter)에 대한 검정을 실시하는 방법이다. 비모수적 방법(nonparametric method): 관측 값이 어느 특정한 확률분포를 따른다고 전제할 수 없거나 또는 모집단에 대한 아무런 정보가 없는 경우에 실시하는 검정방법으로 모수에 대한 언급 이 없으며 분포무관 방법이라고도 한다. 요약하면 자료가 정규분포가 아니거나 표본의 크기가 작으면 분포에 대한 기본가정을 필요로 하지 않는 통계적 기법이다. Non-parametric: 데이터의 feature와 생존 시간 분포 정보를 사용하지 않는 방법입니다. 분포 정보를 알 수 없을 때 유용하지만 예..
백준 알고리즘 - 2630 - 색종이 만들기
2021. 1. 11. 15:04
⏰ 코딩테스트/백준 알고리즘
문제 아래 과 같이 여러개의 정사각형칸들로 이루어진 정사각형 모양의 종이가 주어져 있고, 각 정사각형들은 하얀색으로 칠해져 있거나 파란색으로 칠해져 있다. 주어진 종이를 일정한 규칙에 따라 잘라서 다양한 크기를 가진 정사각형 모양의 하얀색 또는 파란색 색종이를 만들려고 한다. 전체 종이의 크기가 N×N(N=2k, k는 1 이상 7 이하의 자연수) 이라면 종이를 자르는 규칙은 다음과 같다. 전체 종이가 모두 같은 색으로 칠해져 있지 않으면 가로와 세로로 중간 부분을 잘라서 의 I, II, III, IV와 같이 똑같은 크기의 네 개의 N/2 × N/2색종이로 나눈다. 나누어진 종이 I, II, III, IV 각각에 대해서도 앞에서와 마찬가지로 모두 같은 색으로 칠해져 있지 않으면 같은 방법으로 똑같은 크기의..
python - ImportError: attempted relative import with no known parent package
2021. 1. 8. 17:14
📌 Python
ImportError: attempted relative import with no known parent package m.blog.naver.com/wideeyed/221839634437 [Python] relative import with package info 파이썬에서 디렉토리를 이용하여 패키지를 관리할 수 있습니다.그런데 하위 패키지만 사용하지 않고 상위 ... blog.naver.com python 3.8 버전 stackoverflow.com/questions/60593604/importerror-attempted-relative-import-with-no-known-parent-package ImportError : Attempted relative import with no known p..
Docker 로 python 실행하기
2021. 1. 8. 15:34
🚦 Server/Docker
docker-compose.yml 예제 version: '3' services: api: image: python:latest volumes: - ${proj_path}:/root/flask_api_demo working_dir: /root/flask_api_demo version : docker-compose.yml version을 정의합니다. yml 형식의 문법을 정의 합니다. services : docker container를 정의하는 부분입니다. 하나의 container를 하나의 service로 볼 수 있습니다. api : service 이름입니다. 예제에서는 api라는 이름의 service로 container를 구동하겠습니다. 임의로 service이름을 설정할 수 있습니다. image : doc..