파이썬

Computer Science

OS | MultiThreading(멀티 스레딩) & MultiProcessing(멀티 프로세싱)

최근에 프로그램 성능 향상을 위해 병렬 처리를 하고자 했으며, 이 포스팅은 스레딩을 사용할 것이냐 멀티 프로세스를 사용할 것이냐, 무엇이 더 적합한가에 대해 알아보고 고민을 하며 정리한 글이다. 1. 프로세스 프로세스는 프로그램이 실행되는 하나의 instance로 컴퓨터에서 연속적으로 실행 중인 프로그램을 의미한다. 각 프로세스는 각각 메모리 공간을 가지며 데이터를 저장하기 때문에 여러개의 프로세스를 사용할 때 하나의 프로세스가 죽어도 다른 프로세스에 영향을 끼치지 않아 작업이 중단되지 않는다. 2. 스레드 스레드는 하나의 프로세스 내에서 실행되는 흐름의 단위로 프로세스의 component이다. 하나의 프로세스에 여러 쓰레드가 생성될 수 있으며 부모 프로세스의 메로리 공간을 공유하기 때문에 하나의 프로그..

etc

VSCode | window 환경에서 python 가상 환경 생성하기

우분투에 익숙해져 윈도우에서 vscode 및 python을 쓰는 것이 어색해져버린 나머지 가상환경 생성 방법도 까먹어버린 것이다.... ssocr이라는 이름의 가상환경을 vscode에서 만드려고 했으나 우분투에서 vscode를 사용하면서 쓰던 conda create -n 명령어는 통하지 않았다. 찾아보니 윈도우 환경에서는 venv 명령어를 사용하여 가상환경을 생성한다고 한다. 가상환경을 생성하고자 하는 workspace 폴더로 이동한 후 python -m venv ssocr을 입력 해 준다. python -m venv ssocr 위의 명령어로는 가상 환경이 생성되기는 하지만 vscode 내에서 python interpreter 선택이 안되기 때문에 .exe 파일을 직접 선택해야 한다. vscode에서 C..

Gstreamer

Gstreamer RTSP server를 통해 IP camer(CCTV) 스트리밍하기, gstreamer 설치, Gstreamer RTSP server python

gstreamer 기초부터 문법은 아래 튜토리얼 링크와 개념을 설명 해 둔 다양한 블로그에서 자세히 볼 수 있다. 튜토리얼 : https://gstreamer.freedesktop.org/documentation/tutorials/index.html?gi-language=python 개념 설명 블로그 : https://medium.com/may-i-lab/gstreamer-gstreamer-%EA%B8%B0%EC%B4%88-da5015f531fc gstreamer는 우분투에 기본적으로 설치되어 있는 경우도 있기 때문에 확인이 필요하다. which gst-launch-1.0 해당 명령어를 입력했을 때 /usr/bin/gst-launch-1.0 위와 같이 나온다면 우분투에 gstreamer가 설치가 되어 있..

Algorithm

[프로그래머스] Level1 | 비밀지도, 다트게임 - 파이썬(Python) | 2018 KAKAO BLIND RECRUITMENT

드디어 프로그래머스 레벨 1의 모든 문제를 다 풀었다!! 뿌듯- - 비밀지도 - https://programmers.co.kr/learn/courses/30/lessons/17681 코딩테스트 연습 - [1차] 비밀지도 비밀지도 네오는 평소 프로도가 비상금을 숨겨놓는 장소를 알려줄 비밀지도를 손에 넣었다. 그런데 이 비밀지도는 숫자로 암호화되어 있어 위치를 확인하기 위해서는 암호를 해독해야 한다. 다 programmers.co.kr 이진수로 바꿀 때 bin 함수를 사용하였다. 처음엔 2개의 리스트를 순서대로 bin 함수를 사용하여 이진수를 바꾼 후 한번 더 for문을 사용하여 1과 0을 구분하려고 했다. 하지만 이중 for문은 너무 비효율적인 것 같아 다른 방법을 찾아 보다가 bin(i|j)라는 방법을 ..

Algorithm

[프로그래머스] Level1 | 최소직사각형 - 파이썬(Python) | 위클리 챌린지, 얕은 복사와 깊은 복사

https://programmers.co.kr/learn/courses/30/lessons/86491 코딩테스트 연습 - 최소직사각형 [[10, 7], [12, 3], [8, 15], [14, 7], [5, 15]] 120 [[14, 4], [19, 6], [6, 16], [18, 7], [7, 11]] 133 programmers.co.kr 가로가 세로보다 작은 경우에는 회전을 시켜서 보관을 할 수 있기 때문에 가로와 세로의 값을 변경하도록 했다. 이 과정이 for문 안에서 실행이 되었고 이 때 가로와 세로의 값을 변경 하면 기존 값에 덧씌워지기 때문에 제대로 변경이 되지 않는다. 때문에 똑같은 값을 가진 sizes를 복사한 리스트가 필요했다. 여기서 슬라이싱으로 복사([:])를 하니 for문 안에서 ..

Algorithm

[프로그래머스] Level1 | 실패율 - 파이썬(Python) | 2019 KAKAO BLIND RECRUITMENT

https://programmers.co.kr/learn/courses/30/lessons/42889 코딩테스트 연습 - 실패율 실패율 슈퍼 게임 개발자 오렐리는 큰 고민에 빠졌다. 그녀가 만든 프랜즈 오천성이 대성공을 거뒀지만, 요즘 신규 사용자의 수가 급감한 것이다. 원인은 신규 사용자와 기존 사용자 사이에 스 programmers.co.kr 처음 문제를 읽고 이해하는데 한참 걸렸다... 입출력 예시 설명을 보고 겨우 이해를 했고, 결론은 실패율을 구하는 것이 아니라 실패율이 가장 높은 스테이지부터 순서대로 출력을 해야하는 문제였다. 정답 코드 def solution(N, stages): answer = [] all_num = len(stages) num = {} for i in range(1, N+..

Algorithm

[프로그래머스] Level1 | 3진법 뒤집기 - 파이썬(Python) | 진수 변환 / 월간 코드 챌린지 시즌1

https://programmers.co.kr/learn/courses/30/lessons/68935 코딩테스트 연습 - 3진법 뒤집기 자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해주세요. 제한사항 n은 1 이상 100,000,000 이하인 자연수 programmers.co.kr 10진수를 n진수로 바꾸는 코드만 알고 있다면 금방 풀 수 있는 문제이다. 10진수를 n진수로 바꾸는 코드 inv_three_str = '' while n >= 1 : n,b = divmod(n,3) inv_three_str += str(b) three_str = inv_three_str[::-1] while문을 통..

Algorithm

[프로그래머스] Level1 | 폰켓몬- 파이썬(Python) | 찾아라 프로그래밍 마에스터

https://programmers.co.kr/learn/courses/30/lessons/1845 코딩테스트 연습 - 폰켓몬 당신은 폰켓몬을 잡기 위한 오랜 여행 끝에, 홍 박사님의 연구실에 도착했습니다. 홍 박사님은 당신에게 자신의 연구실에 있는 총 N 마리의 폰켓몬 중에서 N/2마리를 가져가도 좋다고 했습니다. programmers.co.kr 굉장히 간단하게 풀 수 있는 문제인데 너무 어렵게 생각해서 시간 초과 왕창 맞았던 문제이다. 첫번째 시도 - 시간 초과 실패 from itertools import combinations as cb def solution(nums): answer = 0 result = [] for numb in cb(nums, int(len(nums)/2)) : result...

Algorithm

[프로그래머스] Level1 | 예산 - 파이썬(Python) | Summer/Winter Coding(~2018)

https://programmers.co.kr/learn/courses/30/lessons/12982 코딩테스트 연습 - 예산 S사에서는 각 부서에 필요한 물품을 지원해 주기 위해 부서별로 물품을 구매하는데 필요한 금액을 조사했습니다. 그러나, 전체 예산이 정해져 있기 때문에 모든 부서의 물품을 구매해 줄 수는 programmers.co.kr 처음에 문제를 보고 모든 경우의 수를 다 생각해야 하나 고민에 빠졌었다. 곰곰히 생각해보니 그럴 필요 없이 for문 하나만으로도 해결을 할 수 있을 것 같았다. 정답 풀이 def solution(d, budget): answer = 0 d = sorted(d) for i in range(len(d)) : if budget >= d[i] : budget -= d[i]..

Algorithm

[프로그래머스] Level2 | 전화번호 목록 - 파이썬(Python) | 해시(Hash)

https://programmers.co.kr/learn/courses/30/lessons/42577 코딩테스트 연습 - 전화번호 목록 전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다. 전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다. 구조 programmers.co.kr 정말 이해가 안되는 문제였다!! 문제가 이해가 안되는게 아니고 내가 푼 풀이는 왜 통과가 안되는지?가 의문인 문제이다 ㅋㅋㅋㅋ... 해시 문제라고 되어있지만 나는 해시를 이용하지 않고 풀었다. 첫번째 시도 - 테스트 케이스 왕창 틀림, 효율성 2/4 틀림 def solution(phone_book): answer = True phone_book = sorte..

토오오끼
'파이썬' 태그의 글 목록 (3 Page)