응급실(큐)
2021. 10. 21. 09:45
⏰ 코딩테스트/자료구조 활용
응급실(큐) 메디컬 병원 응급실에는 의사가 한 명밖에 없습니다. 응급실은 환자가 도착한 순서대로 진료를 합니다. 하지만 위험도가 높은 환자는 빨리 응급조치를 의사가 해야 합니다. 이런 문제를 보완하기 위해 응급실은 다음과 같은 방법으로 환자의 진료순서를 정합니다. • 환자가 접수한 순서대로의 목록에서 제일 앞에 있는 환자목록을 꺼냅니다. • 나머지 대기 목록에서 꺼낸 환자 보다 위험도가 높은 환자가 존재하면 대기목록 제일 뒤로 다시 넣습니다. 그렇지 않으면 진료를 받습니다. 즉, 대기목록에 자기 보다 위험도가 높은 환자가 없을 때 자신이 진료를 받는 구조입니다. 현재 N명의 환자가 대기목록에 있습니다. N명의 대기목록 순서의 환자 위험도가 주어지면, 대기목록상의 M번째 환자는 몇 번째로 진료를 받는지 출..
배아 줄기세포(ESC)와 유도 만능 줄기세포(iPSC)의 유전자 발현 패턴 분석
2021. 10. 20. 17:37
📌 Internship/BIG Lab
배아 줄기세포(ESC)와 유도 만능 줄기세포(iPSC)의 유전자 발현 패턴 분석 Introduction Background 신약개발의 패러다임은 화학물질의 합성을 통한 합성 신약의 개념에서 출발하였지만 현재는 단백질 공학을 이용한 항체 치료와 같은 바이오 신약의 개념으로 그 의미가 확장되어왔다. 최근에는 치료를 위해 살아있는 세포를 환자에게 직접 주입하는 세포 치료의 개념으로 더욱 확장되고 있다. 재생 의학은 선천적 돌연변이에 의한 유전적 변형 혹은 불의의 사고나 퇴행성 질환으로 인해 기능성을 잃어버린 인체의 기관이나 세포를 정상적으로 되돌리는 것을 목표로 하고 있다. 이러한 재생 의학의 발전에 이바지한 커다란 사건들을 꼽아보자면 줄기세포(stem cell)의 발견과 역분화(reprogramming)를 ..
공주 구하기(큐)
2021. 10. 20. 09:34
⏰ 코딩테스트/자료구조 활용
공주 구하기(큐) 정보 왕국의 이웃 나라 외동딸 공주가 숲속의 괴물에게 잡혀갔습니다. 정보 왕국에는 왕자가 N명이 있는데 서로 공주를 구하러 가겠다고 합니다. 정보왕국의 왕은 다음과 같은 방법으로 공주를 구하러 갈 왕자를 결정하기로 했습니다. 왕은 왕자들을 나이 순으로 1번부터 N번까지 차례로 번호를 매긴다. 그리고 1번 왕자부터 N번 왕자까지 순서대로 시계 방향으로 돌아가며 동그랗게 앉게 한다. 그리고 1번 왕자부터 시계방향으로 돌아가며 1부터 시작하여 번호를 외치게 한다. 한 왕자가 K(특정숫자)를 외치면 그 왕자는 공주를 구하러 가는데서 제외되고 원 밖으로 나오게 된다. 그리고 다음 왕자부터 다시 1부터 시작하여 번호를 외친다. 이렇게 해서 마지막까지 남은 왕자가 공주를 구하러 갈 수 있다. 예를 ..
Node js 정리
2021. 10. 19. 21:03
🚦 Server/Node.js
1. require 함수가 리턴하는 객체는 상수로 대입하는 이유 자바스크립트에서 변수(variable)와 상수(constant)의 차이 변수에는 값을 원할 때마다 새롭게 지정해도 되지만, 상수의 경우 값을 한번 설정한 후에는 다른 값을 설정할 수 없다. 왜 그런 걸까? 모듈이 리턴한 객체를 변수로 받으면, 나중에 본인 또는 다른 개발자가 변수 m에 다른 값을 실수로 다시 지정하게 될 수도 있다. 이 경우, 그것 자체만으로는 에러가 발생하지 않지만, 의도하지 않은 오류가 발생할 수 있다는 점에서 오히려 더 위험하다. 하지만 모듈이 리턴한 객체를 상수로 받으면, 상수 m에 새로운 값을 다시 지정하려는 코드 자체에서 에러가 발생하기 때문에, 잘못된 코드를 작성하는 것을 미리 방지할 수 있다. 2. 모듈 내부의..
후위식 연산(스택)
2021. 10. 19. 09:52
⏰ 코딩테스트/자료구조 활용
후위식 연산(스택) 후위연산식이 주어지면 연산한 결과를 출력하는 프로그램을 작성하세요. 만약 3*(5+2)-9 을 후위연산식으로 표현하면 352+*9- 로 표현되며 그 결과는 21입니다. ▣ 입력설명 첫 줄에 후위연산식이 주어집니다. 연산식의 길이는 50을 넘지 않습니다. 식은 1~9의 숫자와 +, -, *, /, (, ) 연산자로만 이루어진다. ▣ 출력설명 연산한 결과를 출력합니다. ▣ 입력예제 1 352+*9- ▣ 출력예제 1 12 풀이 계산한 것을 다른 스택에 저장해줘야 하나 했는데 그대로 스택에 올려주면서 연산하면 되는거였다. 코드1 a = input() stack = [] answer = 0 for x in a: if x.isdecimal(): stack.append(int(x)) else: i..
YOLOv5 커스텀 학습 튜토리얼
2021. 10. 18. 17:52
💡 AI/토이 프로젝트
파일 받아오기 from urllib import request url = "https://public.roboflow.com/ds/FbPSJa257p?key=2mKwetv7pn" savename = "roboflow.zip" request.urlretrieve(url,savename) print("저장되었습니다.") 압축파일 풀기 import zipfile roboflow_zip = zipfile.ZipFile('/home/soon5770/roboflow.zip') roboflow_zip.extractall('/home/soon5770/') roboflow_zip.close() YOLOv5 git clone # YOLOv5 github clone %cd /home/soon5770 !git clone ht..
후위표기식 만들기(스택)
2021. 10. 18. 11:09
⏰ 코딩테스트/자료구조 활용
후위표기식 만들기(스택) 중위표기식이 입력되면 후위표기식으로 변환하는 프로그램을 작성하라. 중위표기식은 우리가 흔히 쓰은 표현식입니다. 즉 3+5 와 같이 연산자가 피연산자 사이에 있으면 중위표기식이다. 후위표기식은 35+ 와 같이 연산자가 피연산자 뒤에 있는 표기식이다. 예를 들어 중위표기식이 3+5*2 를 후위표기식으로 표현하면 352*+ 로 표현된다. 만약 다음과 같이 연산 최우선인 괄호가 표현된 식이라면 (3+5)*2 이면 35+2* 로 바꾸어야 한다. 입력 설명 첫 줄에 중위표기식이 주어진다. 길이는 100을 넘지 않는다. 식은 1~9의 숫자와 +, -, *, /, (, ) 연산자로만 이루어진다. 출력 설명 후위표기식을 출력한다. 입력 예제 1 3+5*2/(7-2) 출력 예제 1 352*72-/..
작물 병해 분류 AI 경진대회
2021. 10. 16. 19:38
💡 AI/Dacon | Kaggle
1. 데이터 전처리 1.1. numpy, pandas 불러오기 import pandas as pd import numpy as np 1.2. 작물 데이터 train set 읽어오기 : read_csv() train = pd.read_csv("../input/jakjak/train.csv") train from PIL import Image Image.open("../input/jakjak/train_imgs/10000.jpg") 1.3. 필요 없는 컬럼 삭제 : drop() train = train.drop(columns=["uid","disease"]) train 1.4. 분석할 이미지 경로 재설정 train["img_path"] = "/kaggle/input/jakjak/" + train["img_p..
백준 알고리즘 - 10799 - 쇠막대기
2021. 10. 16. 17:43
⏰ 코딩테스트/자료구조 활용
풀이 () : 무조건 레이저 스택 이용 틀린 수도코드 if ( : 스택에 ( 넣기 if 스택의 맨마지막이 ( : 스택에 ( 넣기 else 스택의 맨마지막이 ) : 스택에 ( 넣기 else ) : if 스택의 맨마지막이 ( : 스택에서 ( 빼고나서 스택에 쌓여있는 ( 개수만큼 더해주기 else 스택의 맨마지막이 ) : 스택에서 ( 빼고 count +1 틀린 코드 string = input() n = list(string) stack = [] cnt = 0 for i in n: if i=='(': stack.append(i) else: # i==')' if stack[-1] == '(': # 스택의 맨 마지막이 ( stack.pop() cnt += len(stack) else : # 스택의 맨 마지막이 ) ..
Nginx란? 내가 만든 서버는 뭐지?
2021. 10. 15. 20:16
🚦 Server/AWS
서버를 AWS EC2에 위치 시킨 후 DNS를 등록해서 배포 하려 찾아보는 도중 WEB Server는 nginx를 사용하는게 좋다는 글을 봤다. 분명 내가 Node.js 에서 express를 사용하며 만든 작지만 소중한 나의 서버가 있는데 nginx를 사용하란다. 도대체 내가 만든 서버는 뭐고 nginx는 뭐고 둘의 차이는 뭐고 역할은 무엇일까 궁금해서 찾아본다. nginx 란? nginx란 웹 서버 제품중 하나이다. Web Server란? 웹서버의 개념 : 웹 클라이언트로부터 HTTP Request를 받아 Static file(html, css, js)을 제공하는 프로그램이다. web server의 기능 HTTP을 기반으로 하여 클라이언트의 요청을 서비스 하는 기능을 담당한다. 요청에 따라 2가지 기능..
가장 큰 수(스택)
2021. 10. 14. 10:20
⏰ 코딩테스트/자료구조 활용
가장 큰 수(스택) 선생님은 현수에게 숫자 하나를 주고, 해당 숫자의 자릿수들 중 m개의 숫자를 제거하여 가장 큰 수를 만들라고 했습니다. 여러분이 현수를 도와주세요.(단 숫자의 순서는 유지해야 합니다) 만약 5276823 이 주어지고 3개의 자릿수를 제거한다면 7823이 가장 큰 숫자가 됩니다. ▣ 입력설명 첫째 줄에 숫자(길이는 1000을 넘지 않습니다)와 제거해야할 자릿수의 개수가 주어집니다. ▣ 출력설명 가장 큰 수를 출력합니다. ▣ 입력예제 1 5276823 3 ▣ 출력예제 1 7823 ▣ 입력예제 2 9977252641 5 ▣ 출력예제 2 99776 코드 n, m = map(int,input().split()) n = list(map(int, str(n))) # n을 한개씩 접근해서 int화 ..
역수열
2021. 10. 12. 11:41
⏰ 코딩테스트/그리디
역수열(그리디) 1부터 n까지의 수를 한 번씩만 사용하여 이루어진 수열이 있을 때, 1부터 n까지 각각의 수 앞에 놓여 있는 자신보다 큰 수들의 개수를 수열로 표현한 것을 역수열이라 한다. 예를 들어 다음과 같은 수열의 경우 4 8 6 2 5 1 3 7 1앞에 놓인 1보다 큰 수는 4, 8, 6, 2, 5 이렇게 5개이고, 2앞에 놓인 2보다 큰 수는 4, 8, 6 이렇게 3개, 3앞에 놓인 3보다 큰 수는 4, 8, 6, 5 이렇게 4개...... 따라서 4 8 6 2 5 1 3 7의 역수열은 5 3 4 0 2 1 1 0 이 된다. n과 1부터 n까지의 수를 사용하여 이루어진 수열의 역수열이 주어졌을 때, 원래의 수열을 출력하는 프로그램을 작성하세요. ▣ 입력설명 첫 번째 줄에 자연수 N(3
증가수열 만들기
2021. 10. 12. 10:44
⏰ 코딩테스트/그리디
증가수열 만들기(그리디) 1부터 N까지의 모든 자연수로 구성된 길이 N의 수열이 주어집니다. 이 수열의 왼쪽 맨 끝 숫자 또는 오른쪽 맨 끝 숫자 중 하나를 가져와 나열하여 가장 긴 증가수열을 만듭니다. 이때 수열에서 가져온 숫자(왼쪽 맨 끝 또는 오른쪽 맨 끝)는 그 수열에서 제거됩니다. 예를 들어 2 4 5 1 3 이 주어지면 만들 수 있는 가장 긴 증가수열의 길이는 4입니다. 맨 처음 왼쪽 끝에서 2를 가져오고, 그 다음 오른쪽 끝에서 3을 가져오고, 왼쪽 끝에서 4, 왼쪽 끝에서 5를 가져와 2 3 4 5 증가수열을 만들 수 있습니다. ▣ 입력설명 첫째 줄에 자연수 N(3
물체추적으로 레드벨벳 누나들 따라다니는 직캠 만들기
2021. 10. 9. 18:46
💡 AI/토이 프로젝트
OpenCV 로 레드벨벳 누나들 따라다니는 직캠 만들기 VScode python interpreter 변경하기 command + shift + p select interpreter /Users/seon-uchan/opt/anaconda3/bin 선택 $ /Users/seon-uchan/opt/anaconda3/bin/python /Users/seon-uchan/Desktop/ML/BBang/main.py 돌릴 때는 아나콘다로 설치한 파이썬을 이용해야 opencv, numpy 등의 라이브러리를 이용 가능하므로 이렇게 해준다. Run 마우스로 ROI 선택 space 바로 선택 완료 q로 종료 트래킹은 계속 하지만, 영상이 짤릴 경우에도 예외처리 해주어야 한다. 그리고 핸드폰 사이즈로 볼 수 있게 영상을 저장..
침몰하는 타이타닉
2021. 10. 9. 15:07
⏰ 코딩테스트/그리디
침몰하는 타이타닉(그리디) 유럽에서 가장 유명했던 유람선 타이타닉이 침몰하고 있습니다. 유람선에는 N명의 승객이 타고 있습니다. 구명보트를 타고 탈출해야 하는데 타이타닉에 있는 구명보트는 2명 이하로만 탈 수 있으며, 보트 한 개에 탈 수 있는 총 무게도 M kg 이하로 제한되어 있습니다. N명의 승객 몸무게가 주어졌을 때 승객 모두가 탈출하기 위한 구명보트의 최소개수를 출력하는 프로그램을 작성하세요. ▣ 입력설명 첫째 줄에 자연수 N(5
창고 정리
2021. 10. 8. 11:32
⏰ 코딩테스트/그리디
창고 정리(그리디) 창고에 상자가 가로방향으로 일렬로 쌓여 있습니다. 만약 가로의 길이가 7이라면 1열은 높이가 6으로 6개의 상자가 쌓여 있고, 2열은 3개의 상자, 3열은 9개의 상자가 쌓여 있으며 높이는 9라고 읽는다. 창고 높이 조정은 가장 높은 곳에 상자를 가장 낮은 곳으로 이동하는 것을 말한다. 가장 높은 곳이나 가장 낮은 곳이 여러곳이면 그 중 아무거나 선택하면 된다. 위에 그림을 1회 높이 조정을 하면 다음과 같아진다. 창고의 가로 길이와 각 열의 상자 높이가 주어집니다. m회의 높이 조정을 한 후 가장 높은 곳과 가장 낮은 곳의 차이를 출력하는 프로그램을 작성하세요. ▣ 입력설명 첫 번째 줄에 창고 가로의 길이인 자연수 L(1