반응형

2021/02 35

[Python] GIL(Global Interpreter Lock) 정리

[Python] GIL(Global Interpreter Lock) 정리 CPython 메모리 관리 방법 CPython은 reference의 개수를 세는 방법으로 메모리를 관리한다. sys.getrefcount 라는 함수를 이용해서 Python이 세고 있는 객체의 reference 개수를 확인할 수 있다. # 출처: realpython.com >>> import sys >>> a = [] >>> b = a >>> sys.getrefcount(a) 3 a가 처음 만들어짐 -> reference 1개 b에 a의 reference 할당 -> reference 2개 sys.getrefcount 함수에 argument로 a가 들어가서, 이 함수 내부에서 a의 reference 개수를 하나 늘림 -> referen..

[알고리즘] 이것이 취업을 위한 코딩 테스트다 with 파이썬 - 투 포인터

[알고리즘] 이것이 취업을 위한 코딩 테스트다 with 파이썬 - 투 포인터 투 포인터 알고리즘: 리스트에 순차적으로 접근해야 할 때 2개의 점의 위치를 기록하면서 처리하는 알고리즘 예를 들어, 한 반에 학생이 40명 있을 때, 모든 학생을 번호 순서대로 일렬로 세운 뒤, 학생들을 순차적으로 지목해야 할 경우를 생각해보자. 2, 3, 4, 5, 6, 7번 학생을 지목해야 할 때, 우리는 번호로 한명씩 부르기보다는 '2번부터 7번까지의 학생'이라고 부를 수도 있다. 이처럼 리스트에 담긴 데이터에 순차적으로 접근해야 할 때는 '시작점'과 '끝점' 2개의 점으로 접근할 데이터의 범위를 표현할 수 있다. 특정한 합을 가지는 부분 연속 수열 찾기 이러한 투 포인터 알고리즘을 이용하여 '특정한 합을 가지는 ..

[알고리즘] 이것이 취업을 위한 코딩 테스트다 with 파이썬 - 에라토스테네스의 체

[알고리즘] 이것이 취업을 위한 코딩 테스트다 with 파이썬 - 에라토스테네스의 체 에라토스테네스의 체: 여러 개의 수가 소수인지 아닌지를 판별할 때 사용하는 대표 알고리즘. N 보다 작거나 같은 모든 소수를 찾을 때 사용할 수 있다. 알고리즘은 다음과 같다. 2부터 N까지의 모든 자연수를 나열한다. 남은 수 중에서 아직 처리하지 않은 가장 작은 수 i를 찾는다. 남은 수 중에서 i의 배수를 모두 제거한다.(i는 제거하지 않는다) 더 이상 반복할 수 없을 때까지 2번과 3번을 반복한다. 소스코드 예제 - N = 1000 으로 설정 # 시간복잡도: O(NloglogN) import math n = 1000 arr = [True for i in range(n+1)] # 처음엔 모든 수가 소수(True)인 ..

[알고리즘] 이것이 취업을 위한 코딩 테스트다 with 파이썬 - 소수의 판별

[알고리즘] 이것이 취업을 위한 코딩 테스트다 with 파이썬 - 소수의 판별 소수: 2보다 큰 자연수 중에서 1과 자기 자신을 제외한 자연수로는 나우어떨어지지 않는 자연수 6은 1, 2, 3, 6으로 나누어 떨어지기 때문에 소수가 아니다. 7은 1과 7을 제외하고는 나누어떨어지지 않기 때문에 소수이다. 소수는 2보다 큰 자연수에 대하여 정의되므로, 1은 소수에 해당하지 않는다. 어떠한 수 X가 주어졌을 때 해당 수가 소수인지 아닌지 판별하는 방법 가장 간단한 방법은 X를 2부터 X-1 까지의 모든 수로 나누어보는 것. 만일 2부터 X-1 까지의 모든 자연수로 나누었을 때 나누어떨어지는 수가 하나라도 잇다면 X는 소수가 아니다. 소수 판별 소스코드 예제 - 시간복잡도: O(X) def is_prime_n..

[Python] generator(제너레이터) 정리

[Python] generator(제너레이터) 정리 Generator Generator(제너레이터): iterator 를 생성해 주는 함수 iterator : next() 메서드를 이용해 데이터에 순차적으로 접근이 가능한 객체 generator 는 일반적인 함수와 비슷해보이지만, 가장 큰 차이점은 yield 라는 구문일 것이다. 아래의 예시를 보자 def generator(n): i = 0 while i < n: yield i i += 1일반 함수와의 차이는 yield 밖에 없다. yield는 무엇인가? yield 는 generator가 일반 함수와 구분되는 가장 핵심적인 부분이다. 일반적인 함수의 경우, 사용이 종료되면 결과 값을 호출부로 반환한 뒤 함수 자체를 종료시킨 후 메모리 상에서 정리(clea..

[알고리즘] 백준 - 바이러스

[알고리즘] 백준 - 바이러스 문제 신종 바이러스인 웜 바이러스는 네트워크를 통해 전파된다. 한 컴퓨터가 웜 바이러스에 걸리면 그 컴퓨터와 네트워크 상에서 연결되어 있는 모든 컴퓨터는 웜 바이러스에 걸리게 된다. 예를 들어 7대의 컴퓨터가 과 같이 네트워크 상에서 연결되어 있다고 하자. 1번 컴퓨터가 웜 바이러스에 걸리면 웜 바이러스는 2번과 5번 컴퓨터를 거쳐 3번과 6번 컴퓨터까지 전파되어 2, 3, 5, 6 네 대의 컴퓨터는 웜 바이러스에 걸리게 된다. 하지만 4번과 7번 컴퓨터는 1번 컴퓨터와 네트워크상에서 연결되어 있지 않기 때문에 영향을 받지 않는다. 어느 날 1번 컴퓨터가 웜 바이러스에 걸렸다. 컴퓨터의 수와 네트워크 상에서 서로 연결되어 있는 정보가 주어질 때, 1번 컴퓨터를 통해 웜 바이..

[알고리즘] 백준 - 단지번호붙이기

[알고리즘] 백준 - 단지번호붙이기 문제 과 같이 정사각형 모양의 지도가 있다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다. 철수는 이 지도를 가지고 연결된 집의 모임인 단지를 정의하고, 단지에 번호를 붙이려 한다. 여기서 연결되었다는 것은 어떤 집이 좌우, 혹은 아래위로 다른 집이 있는 경우를 말한다. 대각선상에 집이 있는 경우는 연결된 것이 아니다. 는 을 단지별로 번호를 붙인 것이다. 지도를 입력하여 단지수를 출력하고, 각 단지에 속하는 집의 수를 오름차순으로 정렬하여 출력하는 프로그램을 작성하시오. 입력 첫 번째 줄에는 지도의 크기 N(정사각형이므로 가로와 세로의 크기는 같으며 5≤N≤25)이 입력되고, 그 다음 N줄에는 각각 N개의 자료(0혹은 1)가 입력된다. 출력 첫 번째 줄에는 ..

[오픽] 오픽 IH 후기

[오픽] 오픽 IH 후기 선택 사항: 일 경험 없음 / 학생 아니다(수강 후 5년 이상 지남) / 가족과 함께 거주 / 영화보기, 공원가기, 해변가기, 카페/커피 전문점 가기 / 음악 듣기 / 조깅 및 걷기, 하이킹/트레킹 / 운동 전혀 하지 않음 / 집에서 보내는 휴가 / 국내 여행 / 해외 여행 난이도: 5 선택 성적: IH 참고 자료: 오픽 노잼 및 2주 만에 끝내는 해커스 오픽(Advanced 공략) 약 1달동안 유튜브 오픽 노잼 채널과 '2주 만에 끝내는 해커스 오픽' 책을 활용하며 매일 2시간씩 공부했습니다. 매 질문마다 영어로 스크립트를 작성하여 준비하려 했지만 시간이 너무 많이 걸리는 관계로 중간에는 한글로 작성하여 내용만 숙지했습니다. 만능 스크립트를 준비하지 않은 것이 조금 아쉬웠습니다..

취업/오픽(OPIc) 2021.02.21

[오픽] 집에서 보내는 휴가 스크립트

[오픽] 집에서 보내는 휴가 스크립트 선택 사항: 일 경험 없음 / 학생 아니다(수강 후 5년 이상 지남) / 가족과 함께 거주 / 영화보기, 공원가기, 해변가기, 카페/커피 전문점 가기 / 음악 듣기 / 조깅 및 걷기, 하이킹/트레킹 / 운동 전혀 하지 않음 / 집에서 보내는 휴가 / 국내 여행 / 해외 여행 난이도: 5 선택 성적: IH 참고 자료: 오픽 노잼 및 2주 만에 끝내는 해커스 오픽(Advanced 공략) 스크립트 정리 In your background survey, you indicated that you prefer to stay at home during vacations. How do you spend your vacations at home? What do you usually d..

취업/오픽(OPIc) 2021.02.20

[오픽] 하이킹/트레킹 스크립트

[오픽] 하이킹/트레킹 스크립트 선택 사항: 일 경험 없음 / 학생 아니다(수강 후 5년 이상 지남) / 가족과 함께 거주 / 영화보기, 공원가기, 해변가기, 카페/커피 전문점 가기 / 음악 듣기 / 조깅 및 걷기, 하이킹/트레킹 / 운동 전혀 하지 않음 / 집에서 보내는 휴가 / 국내 여행 / 해외 여행 난이도: 5 선택 성적: IH 참고 자료: 오픽 노잼 및 2주 만에 끝내는 해커스 오픽(Advanced 공략) 스크립트 정리 When do you usually go hiking? Where do you go? Tell me about your hiking trail. Answer: 나는 매달 한번 주말에 친구들과 청계산을 하이킹해. (I usually go hiking to 청계산 on weekend..

취업/오픽(OPIc) 2021.02.20
반응형