일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 파이썬기초100제
- 구글퀵랩
- 투포인터
- Microsoft
- codeup
- GenerativeAI
- 릿코드
- 파이썬알고리즘
- 리트코드
- medium
- Python3
- nlp
- 데이터사이언스
- 알고리즘
- 머신러닝
- Python
- gcp
- GenAI
- 생성형AI
- Blazor
- stratascratch
- 코드업
- sql코테
- TwoPointer
- SQL
- 파이썬
- 파이썬기초
- 자연어처리
- two-pointer
- LeetCode
- Today
- Total
목록IT (113)
Tech for good
Multithreading - Python's GIL Keyword - Cpython, 메모리 관리, GIL 사용 이유 01. Python GIL(Global Interpreter Lock) - CPython -> Python(bytecode) 실행 시 여러 thread 사용할 경우, 단일 스레드만이 Python object에 접근하게 제한하는 mutex - CPython 메모리 관리가 취약하기 때문 (즉, Thread를 Safe하게 사용하기 위해 필요) - 단일 스레드로도 충분히 빠르다. - 프로세스 사용 가능(Numpy, Scipy 등) Gil 외부 영역에서 효율적인 코딩 - 병렬 처리는 Multiprocessing, asyncio 등 선택지 다양함. - thread 동시성 완벽 처리를 위해 Jyth..

1. 프로세스(Process) - 운영체제 -> 할당 받는 자원 단위 (실행 중인 프로그램) Mac의 경우 Alt + Space 클릭하여, Search 창에 Activity Monitor 켜서 확인 가능 - CPU 동작 시간, 주소 공간 (독립적) - Code, Data, Stack, Heap -> 독립적 - 최소 1개의 메인 스레드 보유 - 파이프, 파일, 소켓 등을 사용해서 프로세스간 통신 (Cost 높음) => Context Switching 2. 스레드(Thread) - 프로세스(Process) 내에 실행 흐름 단위 - 프로세스의 자원 사용 - Stack만 별도 할당, 나머지는 공유(Code, Data, Heap) - 메모리 공유(변수 공유) - 한 스레드의 결과가 다른 스레드에 영향 끼침 - 동..
페어 프로그래밍 시, 페어의 브랜치를 가져오는 방법이다. 1. 먼저 VS에서 Git 페치를 한다. 2. Git 분기관리를 클릭한 후, remotes/origin 폴더를 찾는다. - 로컬 기록에서 해당 커밋 기록이 최신인지 확인해야 한다. 앞선 과정에서 페치가 잘 되었는지 확인하는 과정이다. 3. 위 폴더에서 가져오고 싶은 브랜치를 찾아서 우클릭 후, '새 로컬 분기 시작 위치(Create a new branch)'를 클릭한다. - 분기 이름을 다르게 설정하여 작업하는 게 안전하다.

6092 : [기초-리스트] 이상한 출석 번호 부르기1 정보 선생님은 수업을 시작하기 전에 이상한 출석을 부른다. 선생님은 출석부를 보고 번호를 부르는데, 학생들의 얼굴과 이름을 빨리 익히기 위해 번호를 무작위(랜덤)으로 부른다. 그리고 얼굴과 이름이 잘 기억되지 않는 학생들은 번호를 여러 번 불러 이름과 얼굴을 빨리 익히려고 하는 것이다. 출석 번호를 n번 무작위로 불렀을 때, 각 번호(1 ~ 23)가 불린 횟수를 각각 출력해보자. 예시 n = int(input()) #개수를 입력받아 n에 정수로 저장 a = input().split() #공백을 기준으로 잘라 a에 순서대로 저장 for i in range(n) : #0부터 n-1까지... a[i] = int(a[i]) #a에 순서대로 저장되어있는 각 ..

6087 : [기초-종합] 3의 배수는 통과 1부터 입력한 정수까지 1씩 증가시켜 출력하는 프로그램을 작성하되, 3의 배수인 경우는 출력하지 않도록 만들어보자. 예를 들면, 1 2 4 5 7 8 10 11 13 14 ... 와 같이 출력하는 것이다. 예시 ... for i in range(1, n+1) : if i%2==0 : continue #다음 반복 단계로 넘어간다. print(i, end=' ') #i가 짝수가 아닐 때만 실행된다. ... 위 코드는 홀 수만 출력하는 예시이다. 참고 조건문이나 반복문의 코드블록 안에서 continue 가 실행되면, 반복 블록 안에 있는 나머지 부분을 실행하지 않고, 다음 반복 단계로 넘어간다. 즉, 반복 블록의 나머지 부분은 실행되지 않고, 다음 단계의 반복을 계..

6085 : [기초-종합] 그림 파일 저장용량 계산하기이미지가 컴퓨터에 저장될 때에도 디지털 데이터화 되어 저장된다.가장 기본적인 방법으로는 그림을 구성하는 한 점(pixel, 픽셀)의 색상을빨강(r), 초록(g), 파랑(b)의 3가지의 빛의 세기 값으로 따로 변환하여 저장하는 것인데,예를 들어 r, g, b 각 색에 대해서 8비트(0~255, 256가지 가능)씩을 사용한다고 하면,한 점의 색상은 3가지 r, g, b의 8비트+8비트+8비트로 총 24비트로 표현해서총 2^24 가지의 서로 다른 빛의 색깔을 사용할 수 있는 것이다.그렇게 저장하는 점을 모아 하나의 큰 이미지를 저장할 수 있게 되는데,1024 * 768 사이즈에 각 점에 대해 24비트로 저장하면 그 이미지를 저장하기 위한저장 용량을 계산할 ..

6083 : [기초-종합] 빛 섞어 색 만들기 빨강(red), 초록(green), 파랑(blue) 빛을 섞어 여러 가지 다른 색 빛을 만들어 내려고 한다. 빨강(r), 초록(g), 파랑(b) 각 빛의 가짓수가 주어질 때, 주어진 rgb 빛들을 섞어 만들 수 있는 모든 경우의 조합(r g b)과 만들 수 있는 색의 가짓 수를 계산해보자. **모니터, 스마트폰과 같은 디스플레이에서 각 픽셀의 색을 만들어내기 위해서 r, g, b 색을 조합할 수 있다. **픽셀(pixel)은 그림(picture)을 구성하는 셀(cell)에서 이름이 만들어졌다. 입력 빨녹파(r, g, b) 각 빛의 가짓수가 공백을 두고 입력된다. 예를 들어, 3 3 3 은 빨녹파 빛에 대해서 각각 0~2까지 3가지 색이 있음을 의미한다. 0

6080 : [기초-종합] 주사위 2개 던지기 1부터 n까지, 1부터 m까지 숫자가 적힌 서로 다른 주사위 2개를 던졌을 때, 나올 수 있는 모든 경우를 출력해보자. 예시 ... for i in range(1, n+1) : for j in range(1, m+1) : print(i, j) ... 참고 위 코드는 바깥쪽의 i 값이 1부터 n까지 순서대로 바뀌는 각각의 동안에 안쪽의 j 값이 다시 1부터 m까지 변하며 출력되는 코드이다. 조건선택 실행구조 안에 다른 조건선택 실행구조를 넣어 처리할 수 있는 것과 마찬가지로 반복 실행구조 안에 다른 반복 실행구조를 넣어 처리할 수 있다. 원하는 형태로 실행 구조를 결합하거나 중첩시킬 수 있다. 입력 서로 다른 주사위 2개의 면의 개수 n, m이 공백을 두고 입..
6077 : [기초-종합] 짝수 합 구하기 정수(1 ~ 100) 1개를 입력받아 1부터 그 수까지 짝수의 합을 구해보자. 예시 #다음 코드는 홀 수만 더해 출력한다. n = int(input()) s = 0 for i in range(1, n+1) : if i%2==1 : s += i print(s) 참고 while 이나 for 반복실행구조를 이용할 수 있다. 다른 방법이나 while 반복실행구조를 이용해서도 성공시켜 보자. 입력 정수 1개가 입력된다. (0 ~ 100) 출력 1부터 그 수까지 짝수만 합해 출력한다. 입력 예시 5 출력 예시 6 n = int(input()) s = 0 for i in range(1, n+1): if i%2==0: s +=i print(s) 6078 : [기초-종합] 원하..
while문의 기본 구조 반복해서 문장을 수행해야 할 경우 while문을 사용한다. 그래서 while문을 반복문이라고도 부른다. 다음은 while문의 기본 구조이다. while : ... while문은 조건문이 참인 동안에 while문 아래의 문장이 반복해서 수행된다. https://wikidocs.net/21 03-2 while문 [TOC] ## while문의 기본 구조 반복해서 문장을 수행해야 할 경우 while문을 사용한다. 그래서 while문을 반복문이라고도 부른다. 다음은 while문의 ... wikidocs.net 6071 : [기초-반복실행구조] 0 입력될 때까지 무한 출력하기 임의의 정수가 줄을 바꿔 계속 입력된다. -2147483648 ~ +2147483647, 단 개수는 알 수 없다. ..