분류 전체보기 19

GCP Jupyter Lab 실시간 협업

Google Cloud Platform에서 생성한 VM 인스턴스에서 실행한 Jupyter 외부에서 접속하기 Jupyter lab에서는 아직 실험(experimental) 단계이지만 다른 사람의 커서 위치와 수정 결과 및 실행 결과를 실시간으로 공유할 수 있는 기능을 지원합니다. 이러한 기능을 개인이 사용하는 로컬 컴퓨터에서 사용하기 위해서는 공유기 설정을 통한 포트 개방의 방법이 있고 ngrok이라고 하는 서비스를 이용하는 방법이 있습니다. 2022.04.28 - [개발환경] - Jupyter lab 실시간 협업 with ngrok 개인 컴퓨터가 아닌 GCP에서 생성한 VM 인스턴스에서 Jupyter lab을 사용하기 위해서는 몇가지 설정이 필요합니다. 1. GCP 방화벽 설정 VPC 네트워크 메뉴를 통..

개발환경 2022.06.12

[BOJ] 2110번: 공유기 설치 (파이썬)

https://www.acmicpc.net/problem/2110 2110번: 공유기 설치 첫째 줄에 집의 개수 N (2 ≤ N ≤ 200,000)과 공유기의 개수 C (2 ≤ C ≤ N)이 하나 이상의 빈 칸을 사이에 두고 주어진다. 둘째 줄부터 N개의 줄에는 집의 좌표를 나타내는 xi (0 ≤ xi ≤ 1,000,000,000)가 www.acmicpc.net - 두 공유기 사이의 거리는 첫 번째 집과 마지막 집 사이의 거리를 넘어갈 수 없기 때문에 end 를 첫 번째 집과 마지막 집 사이의 거리로 설정합니다. - mid 를 두 집 사이의 거리로 설정합니다. - 현재 집과 그다음 집 사이의 거리가 mid 보다 크거나 같다면, 공유기의 설치가 가능합니다. - 설치한 공유기의 개수 valid 를 1 증가시..

알고리즘 2022.05.01

클라우드 플랫폼 무료 티어 비교

Cloud Platform Free-tier 비교 (v2022.05.01) 평생 무료, 1년 무료 여러 클라우드 서비스 회사들이 자사의 서비스를 체험할 수 있도록 무료 티어를 제공하고 있습니다. 다만 특정 기간 동안 무료로 사용할 수 있는 서비스가 있고, 기간의 제한 없이 계속 무료로 사용할 수 있는 서비스가 있습니다. 구글과 오라클의 경우 평생동안 무료로 사용할 수 있는 VM을 제공하고, 아마존이나 네이버의 경우에는 1년 동안 사용 가능한 무료 VM을 제공합니다. Google GCP Oracle Cloud Amazon EC2 네이버 Cloud Platform 무료 사용 VM 종류 e2-micro E2.1.Micro t2.micro Micro-g1 무료 사용 VM 개수 1개/월 2개 1개 1개 CPU 2..

개발환경 2022.05.01

Jupyter lab 실시간 협업 with ngrok

Google Colab은 구글 드라이브에 저장된 Jupyter notebook을 실행할 수 있는 환경을 제공합니다. 구글 드라이브에 있는 파일을 수정하기에 구글 문서와 같이 실시간 협업이 가능한 줄 알았지만, 코드 수정이나 각 셀의 실행결과가 실시간으로 반영되지는 않습니다. 의견을 나누면서 빠르게 코드 작성하기를 원하는 경우에는 실시간으로 협업하는 기능을 필요로 합니다. 이런 기능을 지원하는 서비스들이 존재하지만 유료로 제공됩니다. Jupyterlab에서는 아직 실험적 기능이지만 실시간 협업을 지원합니다. Juypterlab을 실행할 때에 --collaborative 를 추가해주면 됩니다. 같은 네트워크에 속해있는 경우 Jupyterlab을 실행한 호스트 주소로 바로 접속하면 되지만, 서로 다른 네트워크..

개발환경 2022.04.28

무료 GPU 사용 가능 Jupyter Notebook 서비스

딥러닝 관련 프로젝트를 진행하려면 GPU는 사실상 필수입니다. 최근 암호화폐로 인해 그래픽카드를 구하기가 힘들어, 이미 가지고 계시던 분이 아니라면 로컬에서는 딥러닝 프로젝트를 진행하기가 힘든 상황입니다. 그렇기 때문에 웹에서 실행하여 GPU를 지원해주는 Google Colab에 대한 관심이 커지고 있습니다. 다만 Google Colab의 경우 사용자가 많아져서인지 사용 중이지 않은 세션을 정리하기 위해 주기적으로 사용자의 조작을 필요로 합니다. 최근 구름 IDE에서 GPU 컨테이너를 베타 형태로 무료 제공(2022년 5월 기준)을 시작하여, Google Colab의 대체제로 사용할 수 있는 서비스에 대해 알아보았습니다. Google Colab Goorm IDE Paperspace Gradient 저장공..

개발환경 2022.04.23

웹서비스 배포를 위한 플랫폼

웹서비스를 배포하는 방법에는 클라우드 플랫폼에서 제공하는 VM을 사용하여 서버를 구성하는 방법이 있고, Heroku와 같이 복잡한 서버 구성 과정 없이 간편하게 서비스를 배포하는 방법이 있습니다. 또 딥러닝 모델을 사용하는 경우 Ainize와 같은 서비스를 사용할 수 있습니다. 클라우드 플랫폼 클라우드 플랫폼을 사용하는 경우, 구글의 GCP, 오라클의 OCI, 아마존의 AWS 등 여러 회사 중에서 선택하여 사용하면 됩니다. 이 중 일부 회사에서는 무료 서비스를 제공하고 있으므로 본격적인 사용 이전에 체험이 가능합니다. 2022.05.01 - [개발환경] - 클라우드 플랫폼 무료 티어 비교 웹서비스 배포 Heroku의 경우 클라우드 플랫폼을 사용하는 경우와 다르게 서버를 위한 복잡한 과정이 필요하지 않습니..

개발환경 2022.04.23

[프로그래머스] 자물쇠와 열쇠 (파이썬)

https://programmers.co.kr/learn/courses/30/lessons/60059 코딩테스트 연습 - 자물쇠와 열쇠 [[0, 0, 0], [1, 0, 0], [0, 1, 1]] [[1, 1, 1], [1, 1, 0], [1, 0, 1]] true programmers.co.kr 열쇠 돌기 중 하나를 기준으로 하여 다른 돌기까지의 위치 변화를 리스트에 담아둡니다. 자물쇠의 홈 중 하나에 방금 기준으로 정한 열쇠 돌기를 넣고, 위치 변화에 대한 정보를 보고 다른 돌기를 전개합니다(현재 위치와 연결된 다른 돌기를 확인합니다). 그 과정에서 자물쇠의 돌기를 만난다면 중단합니다. 중단되지 않았다면, 자물쇠를 열쇠로 풀 수 있습니다. * solution - 열쇠의 돌기 개수를 계산합니다. - 자..

알고리즘 2022.04.23

[프로그래머스] 프린터 (파이썬)

https://programmers.co.kr/learn/courses/30/lessons/42587 코딩테스트 연습 - 프린터 일반적인 프린터는 인쇄 요청이 들어온 순서대로 인쇄합니다. 그렇기 때문에 중요한 문서가 나중에 인쇄될 수 있습니다. 이런 문제를 보완하기 위해 중요도가 높은 문서를 먼저 인쇄하는 프린 programmers.co.kr 문제에서 요구하는 인쇄 작업을 그대로 구현합니다. 대기목록을 관리하기 위하여 deque를 사용하였습니다. 1. 인쇄 대기목록의 가장 앞에 있는 문서(J)를 대기목록에서 꺼냅니다. 2. 나머지 인쇄 대기목록에서 J보다 중요도가 높은 문서가 한 개라도 존재하면 J를 대기목록의 가장 마지막에 넣습니다. 3. 그렇지 않으면 J를 인쇄합니다. from collections ..

알고리즘 2022.04.22

[프로그래머스] 더 맵게 (파이썬)

https://programmers.co.kr/learn/courses/30/lessons/42626 코딩테스트 연습 - 더 맵게 매운 것을 좋아하는 Leo는 모든 음식의 스코빌 지수를 K 이상으로 만들고 싶습니다. 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 Leo는 스코빌 지수가 가장 낮은 두 개의 음식을 아래와 같 programmers.co.kr 모든 음식의 스코빌 지수가 K 이상이 되려면 가장 낮은 스코빌 지수가 K 이상이 되면 됩니다. 힙을 사용하여 문제에서 주어진 방법으로 음식 섞기를 반복적으로 수행합니다. import heapq def solution(scoville, K): answer = 0 heapq.heapify(scoville) while scoville[0] < K and ..

알고리즘 2022.04.17

[BOJ] 1715번: 카드 정렬하기 (파이썬)

https://www.acmicpc.net/problem/1715 1715번: 카드 정렬하기 정렬된 두 묶음의 숫자 카드가 있다고 하자. 각 묶음의 카드의 수를 A, B라 하면 보통 두 묶음을 합쳐서 하나로 만드는 데에는 A+B 번의 비교를 해야 한다. 이를테면, 20장의 숫자 카드 묶음과 30장 www.acmicpc.net 보유하고 있는 카드 묶음 중에 가장 작은 두 개의 묶음을 비교해야 최소 횟수로 비교할 수 있습니다. 첫번째 원소가 항상 제일 작은 값이 되도록 유지하는 heapq 라이브러리를 사용합니다. 비교가 필요한 카드 묶음을 heapq에 넣어 관리합니다. 가장 작은 묶음과 그 다음으로 작은 묶음을 꺼내어 비교하고, 하나가 된 카드 묶음을 다시 heapq에 넣습니다. 카드 묶음이 1개 남을 때까..

알고리즘 2022.04.17