목록파이썬 (72)
차밍이
목차 multiprocessing 사용하게된 계기 기록용으로 안읽고 다음 탭으로 넘어가셔도 됩니다. 파이썬에서 처리 속도를 높이기 위해 멀티 프로세싱을 사용할 수 있다. 대용량의 csv 파일 수 천개를 다뤄야 했던 경험이 있다. pandas를 사용해서 파일을 읽어오는 것에만 상당히 많은 시간을 소모한다. 하나의 csv 파일을 읽어오기 위해서 그 동안 가만히 기다려야 하는 시간들이 매우 소모적이라고 생각했다. 대용량 csv 파일도 있지만 절반 정도는 매우 용량이 적은 csv 파일들이었다. 메모리에 문제가 없는 수준에서는 여러개의 파일을 읽어와서 동시에 처리해도 괜찮겠다고 생각했다. 그래서 멀티프로세싱을 사용해 core 4개로 설정했더니 2배 이상 빨라졌다. Good ! 멀티 Pool 사용하기 from mu..
목차 1. example package shapes 구조 __init__과 __all__를 알기 위해서 예시로 사용할 package shapes의 구조와 코드를 먼저 보고가자. tree shapes/ __init__.py area.py volume.py shapes/area.py PI = 3.14 # 원의 면적을 구해 주는 함수 def circle(radius): return PI * radius * radius # 정사각형의 면적을 구해 주는 함수 def square(length): return length * length shapes/volume.py PI = 3.14 # 구의 부피를 구해 주는 함수 def sphere(radius): return (4/3) * PI * radius * radius ..
목차 패키지란? 패키지는 모듈들을 모아 놓은 디렉토리를 뜻합니다. 예를 들어 우리는 평면도형의 면적을 구해 주는 area 모듈과 입체도형의 부피를 구해주는 volume 모듈을 모아서 shapes라는 패키지를 만들었습니다. shapes 패키지의 구조는 아래와 같습니다. shapes/ __init__.py area.py volume.py shapes/area.py PI = 3.14 # 원의 면적을 구해 주는 함수 def circle(radius): return PI * radius * radius # 정사각형의 면적을 구해 주는 함수 def square(length): return length * length shapes/volume.py PI = 3.14 # 구의 부피를 구해 주는 함수 def sphere..
목차 What is Module ? 모듈은 여러 기능을 모아둔 파이썬 파일입니다. 사용할 함수들을 정의해 놓은 파일을 의미합니다. 예를 들어 우리는 평면도형의 면적을 구해 주는 함수들을 모아서 area라는 모듈을 만들었습니다. area.py PI = 3.14 # 원의 면적을 구해 주는 함수 def circle(radius): return PI * radius * radius # 정사각형의 면적을 구해 주는 함수 def square(length): return length * length import area 등의 방식으로 import해서 area 모듈의 circle 등의 함수를 사용할 수 있습니다. What is Script ? 스크립트는 모듈에서 정의함 함수들을 사용하는 파일을 의미합니다. run.py..
웹페이지가 완전히 로딩되지 않아서 문제가 발생하는 경우가 종종 있다. 예를들어 ElementNotVisibleException 에러가 발생한다. 웹페이지가 다 열리지 않은 상태에서 특정 객체를 찾으려고 하면, 해당 객체가 없어서 찾을 수 없다는 에러를 발생시키는 것이다. 이를 히결하려면 로딩이 완전히 될 때까지 기다려야 한다. Selenium의 두 가지 Wait 방법 Implicitly wait: 정해진 시간만큼 충분히 기다리기 Explicitly wait: 어떤 조건이 만족할 때까지 기다리기 Implicitly wait Implicitly wait을 10초로 설정하면 페이지가 로딩되는데 10초까지 기다립니다. 만약 페이지 로딩이 2초에 완료되었다면 더 기다리지 않고 다음 코드를 수행합니다. 기본 설정은..

Scatter Plot Animation matplotlib.animation.FuncAnimation class matplotlib.animation.FuncAnimation(fig, func, frames=None, init_func=None, fargs=None, save_count=None, , *cache_frame_data=True, *kwargs*) def func(frame, *fargs) -> iterable_of_artists matplotlib에서도 애니메이션 형식으로 움직이는 그래프를 그려줄 수 있다. 그림을 그려줄 fig객체와 시간에 따라 변화하는 데이터의 변화를 어떻게 정의할 것인지에 대한 함수(func)가 필요하다. 보통 matplotlib 에니메이션 관련해서 검색하면 전체 데..
목차 요약 Close 는 하나의 Tab만 종료함 Quit은 Webdriver 전체를 종료함 하나의 탭만 종료하고 기존의 webdriver 연결을 유지하려면 Close를 사용하면 된다. 전체 Driver를 종료하고 프로그램을 끝내려면 Quit을 사용하면 된다. 끝! Close close()는 현재 selenium webdriver가 활성화되어 있는 Tab만 종료 2개 이상의 webdriver 탭이 열려있다면 현재 활성화되어 있는 webdriver만 종료 나머지 webdriver는 연결 유지 Quit quit()는 dispose() 함수를 불러와 열려있는 모든 webdriver를 종료하고 세션을 마침 프로그램을 종료할 때 quit()을 사용하지 않는다면 webdriver 세션이 완벽하게 종료되지 않아 메모리..
뒤집기 시간 제한메모리 제한제출정답맞힌 사람정답 비율 2 초 128 MB 15466 8301 6509 53.493% 문제 다솜이는 0과 1로만 이루어진 문자열 S를 가지고 있다. 다솜이는 이 문자열 S에 있는 모든 숫자를 전부 같게 만들려고 한다. 다솜이가 할 수 있는 행동은 S에서 연속된 하나 이상의 숫자를 잡고 모두 뒤집는 것이다. 뒤집는 것은 1을 0으로, 0을 1로 바꾸는 것을 의미한다. 예를 들어 S=0001100 일 때, 전체를 뒤집으면 1110011이 된다. 4번째 문자부터 5번째 문자까지 뒤집으면 1111111이 되어서 2번 만에 모두 같은 숫자로 만들 수 있다. 하지만, 처음부터 4번째 문자부터 5번째 문자까지 문자를 뒤집으면 한 번에 0000000이 되어서 1번 만에 모두 같은 숫자로 ..
거스름돈 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 1 초 128 MB 28162 17674 15045 62.446% 문제 타로는 자주 JOI잡화점에서 물건을 산다. JOI잡화점에는 잔돈으로 500엔, 100엔, 50엔, 10엔, 5엔, 1엔이 충분히 있고, 언제나 거스름돈 개수가 가장 적게 잔돈을 준다. 타로가 JOI잡화점에서 물건을 사고 카운터에서 1000엔 지폐를 한장 냈을 때, 받을 잔돈에 포함된 잔돈의 개수를 구하는 프로그램을 작성하시오. 입력 입력은 한줄로 이루어져있고, 타로가 지불할 돈(1 이상 1000미만의 정수) 1개가 쓰여져있다. 출력 제출할 출력 파일은 1행으로만 되어 있다. 잔돈에 포함된 매수를 출력하시오. 예제 입력 1 380 예제 출력 1 4 예제 입력 2 1 예제 ..
해킹 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 2 초 256 MB 8889 3518 2481 38.453% 문제 최흉최악의 해커 yum3이 네트워크 시설의 한 컴퓨터를 해킹했다! 이제 서로에 의존하는 컴퓨터들은 점차 하나둘 전염되기 시작한다. 어떤 컴퓨터 a가 다른 컴퓨터 b에 의존한다면, b가 감염되면 그로부터 일정 시간 뒤 a도 감염되고 만다. 이때 b가 a를 의존하지 않는다면, a가 감염되더라도 b는 안전하다. 최흉최악의 해커 yum3이 해킹한 컴퓨터 번호와 각 의존성이 주어질 때, 해킹당한 컴퓨터까지 포함하여 총 몇 대의 컴퓨터가 감염되며 그에 걸리는 시간이 얼마인지 구하는 프로그램을 작성하시오. 입력 첫째 줄에 테스트 케이스의 개수가 주어진다. 테스트 케이스의 개수는 최대 100개..