
[프로그래머스] LV1 개인정보 수집 유효기간 - python
2023. 1. 8. 22:01
ETC/Algorithm
개인정보 수집 유효기간 문제설명 고객의 약관 동의를 얻어서 수집된 1~ n 번으로 분류되는 개인정보 n 개가 있습니다. 약관 종류는 여러 가지 있으며 각 약관마다 개인정보 보관 유효기간이 정해져 있습니다. 당신은 각 개인정보가 어떤 약관으로 수집됐는지 알고 있습니다. 수집된 개인정보는 유효기간 전까지만 보관 가능하며, 유효기간이 지났다면 반드시 파기해야 합니다. 예를 들어, A라는 약관의 유효기간이 12 달이고, 2021년 1월 5일에 수집된 개인정보가 A약관으로 수집되었다면 해당 개인정보는 2022년 1월 4일까지 보관 가능하며 2022년 1월 5일부터 파기해야 할 개인정보입니다. 당신은 오늘 날짜로 파기해야 할 개인정보 번호들을 구하려 합니다. 모든 달은 28일까지 있다고 가정합니다. 다음은 오늘 날..
[프로그래머스] LV1 [1차] 다트 게임 - python
2022. 12. 28. 22:10
ETC/Algorithm
문제 설명 카카오톡 게임별의 하반기 신규 서비스로 다트 게임을 출시하기로 했다. 다트 게임은 다트판에 다트를 세 차례 던져 그 점수의 합계로 실력을 겨루는 게임으로, 모두가 간단히 즐길 수 있다. 갓 입사한 무지는 코딩 실력을 인정받아 게임의 핵심 부분인 점수 계산 로직을 맡게 되었다. 다트 게임의 점수 계산 로직은 아래와 같다. 다트 게임은 총 3번의 기회로 구성된다. 각 기회마다 얻을 수 있는 점수는 0점에서 10점까지이다. 점수와 함께 Single( S ), Double( D ), Triple( T ) 영역이 존재하고 각 영역 당첨 시 점수에서 1제곱, 2제곱, 3제곱 (점수1 , 점수2 , 점수3 )으로 계산된다. 옵션으로 스타상( * ) , 아차상( # )이 존재하며 스타상( * ) 당첨 시 해..

[프로그래머스] LV2 디펜스 게임 - python
2022. 12. 27. 22:33
ETC/Algorithm
문제 설명 준호는 요즘 디펜스 게임에 푹 빠져 있습니다. 디펜스 게임은 준호가 보유한 병사 n 명으로 연속되는 적의 공격을 순서대로 막는 게임입니다. 디펜스 게임은 다음과 같은 규칙으로 진행됩니다. 준호는 처음에 병사 n 명을 가지고 있습니다. 매 라운드마다 enemy [i]마리의 적이 등장합니다. 남은 병사 중 enemy [i]명 만큼 소모하여 enemy [i]마리의 적을 막을 수 있습니다. 예를 들어 남은 병사가 7명이고, 적의 수가 2마리인 경우, 현재 라운드를 막으면 7 - 2 = 5명의 병사가 남습니다. 남은 병사의 수보다 현재 라운드의 적의 수가 더 많으면 게임이 종료됩니다. 게임에는 무적권 이라는 스킬이 있으며, 무적권 을 사용하면 병사의 소모없이 한 라운드의 공격을 막을 수 있습니다. 무적..

[프로그래머스] LV1 크기가 작은 부분문자열 - python
2022. 12. 27. 21:21
ETC/Algorithm
문제 설명 숫자로 이루어진 문자열 t 와 p 가 주어질 때, t 에서 p 와 길이가 같은 부분문자열 중에서, 이 부분문자열이 나타내는 수가 p 가 나타내는 수보다 작거나 같은 것이 나오는 횟수를 return하는 함수 solution을 완성하세요. 예를 들어, t ="3141592"이고 p ="271" 인 경우, t 의 길이가 3인 부분 문자열은 314, 141, 415, 159, 592입니다. 이 문자열이 나타내는 수 중 271보다 작거나 같은 수는 141, 159 2개 입니다. 제한사항 1 ≤ p의 길이 ≤ 18 p의 길이 ≤ t의 길이 ≤ 10,000 t와 p는 숫자로만 이루어진 문자열이며, 0으로 시작하지 않습니다. 입출력 예 & 설명 t p result "3141592" "271" 2 "50022..

[프로그래머스] LV1 숫자 문자열과 영단어 문제 - python
2022. 12. 26. 20:47
ETC/Algorithm
문제 설명 네오와 프로도가 숫자놀이를 하고 있습니다. 네오가 프로도에게 숫자를 건넬 때 일부 자릿수를 영단어로 바꾼 카드를 건네주면 프로도는 원래 숫자를 찾는 게임입니다. 다음은 숫자의 일부 자릿수를 영단어로 바꾸는 예시입니다. 1478 → "one4seveneight" 234567 → "23four5six7" 10203 → "1zerotwozero3" 이렇게 숫자의 일부 자릿수가 영단어로 바뀌어졌거나, 혹은 바뀌지 않고 그대로인 문자열 s 가 매개변수로 주어집니다. s 가 의미하는 원래 숫자를 return 하도록 solution 함수를 완성해주세요. 참고로 각 숫자에 대응되는 영단어는 다음 표와 같습니다. 숫자 영단어 0 zero 1 one 2 two 3 three 4 four 5 five 6 six ..

[프로그래머스] LV2 테이블 해시 함수 문제 - python
2022. 12. 26. 20:34
ETC/Algorithm
문제 설명 완호가 관리하는 어떤 데이터베이스의 한 테이블은 모두 정수 타입인 컬럼들로 이루어져 있습니다. 테이블은 2차원 행렬로 표현할 수 있으며 열은 컬럼을 나타내고, 행은 튜플을 나타냅니다. 첫 번째 칼럼은 기본키로서 모든 튜플에 대해 그 값이 중복되지 않도록 보장됩니다. 완호는 이 테이블에 대한 해시 함수를 다음과 같이 정의하였습니다. 해시 함수는 col , row_begin , row_end 을 입력으로 받습니다. 테이블의 튜플을 col 번째 컬럼의 값을 기준으로 오름차순 정렬을 하되, 만약 그 값이 동일하면 기본키인 첫 번째 컬럼의 값을 기준으로 내림차순 정렬합니다. 정렬된 데이터에서 S_i를 i 번째 행의 튜플에 대해 각 컬럼의 값을 i 로 나눈 나머지들의 합으로 정의합니다. row_begin..
[Docker] 00 Ubuntu 20.04 Docker 설치하기
2022. 10. 13. 10:48
ETC/Docker
Ubuntu 20.04(LTS) Docker 설치 오랜만에 Docker를 다시 설치하면서 내용을 간단하게 정리해보고자 한다. Docker 란..? 간단히 말하자면, Docker는 container 에서 application process들을 관리하는 process를 단순화하는 application이다. Container를 사용하면 리소스를 격리한 프로세스에서 application을 실행할 수 있다. Anaconda 등과 같은 가상환경 시스템과 비슷하지만 container는 더 portable하고 리소스-친화적이며, host OS에 더 의존적이다. Docker container에 대한 좀더 구체적인 개념을 원한다면 The Docker Ecosystem: An Introduction to Common Com..

02 Openvino Toolkit 2020ver. #3 모델에 사용하기 - How to use Model Optimizer?
2022. 9. 13. 09:40
ETC/Openvino Toolkit
Openvino Toolkit 설치 관련된 지난 게시글에 이어 자신이 만든 모델에 직접 사용해볼 예정이다. 보통 OpenvinoToolkit을 사용하여 딥러닝 모델을 최적화 하는 것은 OpenvinoToolkit 에서 제공하는 Model Optimizer 를 통해 이루어진다. 본 내용은 Openvino Toolkit 2020ver. 을 기반으로 작성되었다. Model Optimizer 란, Training 및 배포(deployment) 환경 간의 전환을 용이하게 하고 정적 모델 분석(static model analysis)을 수행하고 end-point target 장치에서 최적의 실행을 위해 딥 러닝 모델을 조정하는 cross-platform command-line tool이다. Model Optimiz..

01 anaconda 가상 환경 생성 & 삭제 & 환경 추출
2022. 8. 30. 11:31
ETC/Frequently Used
매번 사용할때마다 아.. 이게 뭐였지..? 하는 것들 중 가장 많이 찾아본.. conda 명령어들을 모아보았다. (사실 내가 항상 잊어버리는게 크다...) anaconda 설치의 경우, anaconda홈페이지에서 각자의 os 에 맞는 버전을 다운받아 설치하면 된다. Anaconda 가상환경 생성 - conda 가상환경은 보통 아래의 명령어를 통해 생성한다. - 가상환경 생성시 같이 설치하고자 하는 package가 있을경우 뒤에 붙여주면 된다. $ conda env create -n {생성할 가상환경 이름} python = {원하는 버전} $ conda env create -n py38_tf-gpu python=3.8 tensorflow-gpu ... ... Proceed ([y]/n)? y # type ..
00 Jupyter notebook or lab 에 conda 가상 환경 kernel 추가하기
2022. 8. 22. 17:29
ETC/Frequently Used
jupyter server 를 사용하여 원격으로 서버에 접속하는 경우, 혹은 anaconda 환경 여러개 만들고 (base) 환경에서 jupyter notebook 혹은 lab을 사용하는 경우 kernel 을 등록할 일이 많다. 그렇다보니 계속 찾아보는것도 귀찮고, 기록해놓으면 이러한 수고로움을 없애고자.. 관련된 명령어를 최대한 정리해보겠다. 가상환경 생성 및 Kernel 추가 방법 step 1. 가상환경 활성화 # display VEs conda env list # Conda conda activate [virtual Environment] step 2. 가상환경에서 ipykernel 설치 - jupyter 설치 먼저 하도록 # if you don't have installed jupyter yet ..

01 Openvino Toolkit #2 모델에 사용하기 - Freezing Model
2022. 8. 18. 18:35
ETC/Openvino Toolkit
2022.08.12 - [ETC/frequently used] - 00 Openvino Toolkit #1 설치 방법 에 대한 지난 게시글에 이어 자신이 만든 모델을 고정(Freezing)시켜볼 것이다. 보통 OpenvinoToolkit을 사용하여 딥러닝 모델을 최적화 하는 것은 OpenvinoToolkit에서 제공하는 Model Optimizer 를 통해 이루어지는데, Openvino Toolkit 의 Model Optimizer를 사용할 경우 고정된 추론 그래프(Inference Graph) 파일을 생성해야 한다. 일반적으로 우리가 알고있는 그래프, 네트워크(모델)는 훈련이 가능한 형태(trainable)로 구축되어있다. 즉, 모든 훈련 가능한 모수가 그래프에서 변수로 표현된다는 것이다. 이러한 변수..

00 Openvino Toolkit 2020ver. #1 설치 방법
2022. 8. 12. 14:43
ETC/Openvino Toolkit
Openvino Toolkit 이란..? 딥러닝 분야에서 모델 학습에 있어 GPU의 존재는 필수적이지만 이를 납품하는 경우에는 비용 문제에 있어 꺼려지는 것이 현실이다. 이에 따라 GPU가 없는 mini PC 환경에서도 모델을 돌릴 수 있도록 경량화 작업을 거치거나, Cloud Platform 에서 서비스를 제공하는 등의 우회로를 찾는다. 어찌됐던.. Cloud Platform을 이용하는 비용을 계산 하면 모델 경량화가 가장 효율적이라 판단되는데, quantization, knowledge distillation 등등 의 method가 존재하지만, 이런 번거로움을 한번에 날려주는 라이브러리가 있다 하여 소개하게 되었다. 바로 intel에서 만든 OpenVINO ToolKit 이다. 설치 방법 설치 파일은..