압축 폴더를 푸는 방법에는 unzip, shutil, zipfile 3가지 방법이 있다. 3가지 방법 모두 output 폴더가 없다면 자동으로 생성해 주며, Colab에서 별도 설치 없이 실행 가능하다. 1. unzip unzip은 Linux에서 사용하는 명령어이다. Colab에서 unzip을 사용하는 방법은 두 가지이며 os 모듈을 통한 방법이 훨씬 빠르다. Command Line unzip [파일명] -d [저장위치] !unzip dataset.zip -d ./dataset/dataset os 모듈 Command Line 명령어를 그대로 os.system 함수 안에 입력하면 된다. import os file_name = "dataset.zip" output_dir = "dataset/dataset" ..
Java란 "객체지향언어"로 1995년 Sun Microsystems에서 개발한 언어이다. C와 C++ 언어의 문법을 바탕으로 개발되었다. Java의 특징 1. 객체지향언어 (Object Oriented Language) 객체를 기반으로 개발하는 프로그래밍 언어로 상속, 캡슐화, 다형성, 추상화의 특징을 지닌다. 2. 운영체제에 독립적 윈도우, 리눅스, 맥 등에 맞는 자바가상머신(JVM, Java Virtual Machine)이 설치되어 있다면, 운영체제(OS)에 상관없이 자바 프로그램의 실행이 가능하다. 3. 자동 메모리 관리 가비지컬렉터(GC, Garbage Collector)가 사용되지 않는 메모리를 자동으로 제거하기 때문에, C언어와 달리 메모리 관리를 하지 않아도 된다. 4. 멀티쓰레드 자바 A..
문제마을에는 N개의 집이 순서대로 원 형태로 서로 이웃해 있다. 각 집에는 돈이 보관되어 있으며, 이 돈의 양은 숫자로 표시된다. 도둑은 M개의 연속된 집에서 돈을 훔치기로 하였고, 만약 도둑이 훔친 돈의 총액이 K원 이상이 되면 방범장치가 작동하여 붙잡히게 된다. 따라서 도둑이 붙잡히지 않고 무사히 마을을 빠져나가기 위해 돈을 훔칠 M개의 연속된 집을 선택하는 방법의 수를 구해야 한다. 풀이이 문제에서 중요한 점은 집들이 원 형태로 이웃했다는 점이다.원의 형태이기 때문에 위 그림의 오른쪽 이미지들처럼 7번 집을 지나 0번 집까지 연속으로 돈을 훔치는 것이 가능하다.도둑질을 시작하는 집을 기준으로 0부터 n-1까지 m칸씩 합계를 구해, 방범 장치가 울리지 않는 크기가 총 몇 가지 있는지 구하면 된다.주의..
앞선 글에서 아래한글(hwp) 문서를 읽는 방법을 살펴보았다. [Python] Colab에서 아래한글(hwp) 문서 읽기 Colab을 사용해 아래한글 문서를 받아 엑셀로 정리하는 작업을 하려고 한다. 윈도우에서 한글 문서를 다루는 패키지로 pyhwp가 있지만, Colab에서는 리눅스 OS를 사용하기 때문에 pyhwp로 아래한글 문 code-angie.tistory.com 이번에는 학술대회 참가신청서를 예시로 한글 문서를 읽고, 데이터를 뽑아내 엑셀화 하는 작업을 하려고 한다. text를 split을 통해 나누고 replace를 통해 정제하는 정도만 알고 있어도 쉽게 할 수 있는 작업이다. 1. 패키지 불러오기 # 별도 설치가 필요한 패키지는 설치를 해준다. !pip install olefile impor..
Colab을 사용해 아래한글 문서를 받아 엑셀로 정리하는 작업을 하려고 한다. 윈도우에서 한글 문서를 다루는 패키지로 pyhwp가 있지만, Colab에서는 리눅스 OS를 사용하기 때문에 pyhwp로 아래한글 문서를 읽기가 쉽지 않았다. (exe 파일을 사용해서 그렇다고 본 것 같다.) 다행히 olefile 패키지를 사용하여 아래한글 문서를 바로 txt 문서로 변환하여 읽어 올 수 있는 방법을 찾았다. 1. olefile 패키지 설치 pip install olefile 2. 아래한글 문서 열기 import olefile path = "/content/file_name.hwp" f = olefile.OleFileIO(path) 3. 아래한글 문서 디코딩하기 기본적인 틀은 openstream 함수로 문서의 내..
사무 보조 알바를 하다보니 반복되는 작업이 많아 자동화를 시도해보게 되었다. word 문서는 python-docx 패키지를 통해 쉽게 다룰 수 있다. 간단하게 문서 내 글을 읽고, 쓰는 방법을 정리해 보았다. 1. python-docx 설치 word 문서를 다루기 위해 python-docx 패키지를 설치한다. 이 패키지는 Colab에서도 잘 돌아간다. pip install python-docx 2. word 문서 불러오기 from docx import Document path = "/content/file_name.docx" doc = Document(path) 3. Paragraphs 3.1. 문단 읽기 paragraphs 함수를 통해 word 문서 내 모든 문단을 확인할 수 있다. 하지만 표는 확인이..
문제 n이 주어졌을 때, n번째 피보나치 수를 구하는 문제이다. 이 문제의 조건은 다음과 같다. 피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그다음 2번째부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n ≥ 2)가 된다. 예를 들어, n=17일 때까지 피보나치 수를 써보면 다음과 같다. 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597 풀이 피보나치 수는 특정 숫자로 나누었을 때 나머지가 항상 주기를 갖는다는 특징이 있다. 이를 피사노 주기(Pisano Period)라고 한다. 예를 들어 피보나치 수를 4로 나누었을 때 나머지..