조건문프로그래밍 언어에서 조건문은 코드의 흐름을 제어하는 핵심적인 요소이다. 특정 조건이 주어졌을 때, 이 조건이 True인지 False인지에 따라 서로 다른 코드 블록이 실행되도록 하여 다양한 상황에 맞는 동작을 가능하게 한다. 조건문은 크게 3 가지 형태로 나뉜다.단일 조건문 (if문)조건이 True일 때만 코드 블록이 실행된다.이중 조건문 (if-else문)조건이 True일 때와 False일 때 각각의 코드 블록이 실행된다.다중 조건문 (if-elseif-else문)여러 조건을 순차적으로 검사하여, 조건에 맞는 코드 블록이 실행된다.1. Python의 if 문Python의 if 문은 간단하고 직관적이다.들여쓰기를 통해 코드 블록을 구분하며, 잘못된 들여쓰기는 에러를 발생시킨다.if / elif / ..
Colab에서 데이터를 다루다 보면 공유 받은 구글 드라이브 링크를 통해 데이터를 다운 받을 때가 있다. 로컬에 다운 받아 Colab에 추가할 수 있지만 코드 몇 줄로 손쉽게 다운 받는 방법이 있다. 여기서는 gdown과 gdrive dataset 방법을 소개하려고 한다. 1. gdown gdown은 Colab에 설치되어 있어 별도의 설치가 필요없다. 파일을 저장할 폴더가 생성되어 있어야 한다. 구글 드라이브의 open.zip 파일 링크를 공유 받았다면 file_id를 추출한다. https://drive.google.com/file/d/16YZxhGfwnvlSLDsfDcaM_Z7nTouqzRaW/view 주어진 링크에서 file_id는 초록색 강조 부분인 16YZxhGfwnvlSLDsfDcaM_Z7nTo..
문제11개의 각 포지션마다 가치가 가장 높은 선수를 뽑아 팀을 구성했을 때, k 년 뒤에 뽑힌 선수들의 가치의 합을 구하는 문제이다.포지션에 해당하는 선수가 없다면 공석으로 두며,8월에 뽑힌 선수들에 한해서 가치가 1씩 감소하고, 가치는 0보다 작아지진 않는다.11월에 다시 가치가 높은 선수들을 뽑은 뒤, 12월에 선수들의 가치의 합을 측정한다.풀이heap을 사용하여 각 포지션마다 가장 큰 가치를 쉽게 뽑아낼 수 있다.heapq는 가장 작은 숫자를 0번째 인덱스에 저장하는 특징을 갖고 있다. 따라서 가치를 음수로 넣어 가장 큰 수를 쉽게 얻을 수 있다.포지션에 따른 선수 정보를 입력한다.빈 포지션이 있을 수 있음으로 0으로 초기화를 한다.heapq를 사용하여 선수의 가치를 음수로 저장한다.8월에는 가치가..
문제마을에는 N개의 집이 순서대로 원 형태로 서로 이웃해 있다. 각 집에는 돈이 보관되어 있으며, 이 돈의 양은 숫자로 표시된다. 도둑은 M개의 연속된 집에서 돈을 훔치기로 하였고, 만약 도둑이 훔친 돈의 총액이 K원 이상이 되면 방범장치가 작동하여 붙잡히게 된다. 따라서 도둑이 붙잡히지 않고 무사히 마을을 빠져나가기 위해 돈을 훔칠 M개의 연속된 집을 선택하는 방법의 수를 구해야 한다. 풀이이 문제에서 중요한 점은 집들이 원 형태로 이웃했다는 점이다.원의 형태이기 때문에 위 그림의 오른쪽 이미지들처럼 7번 집을 지나 0번 집까지 연속으로 돈을 훔치는 것이 가능하다.도둑질을 시작하는 집을 기준으로 0부터 n-1까지 m칸씩 합계를 구해, 방범 장치가 울리지 않는 크기가 총 몇 가지 있는지 구하면 된다.주의..
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개의 별들을 이어 별자리를 만드는 최소 비용을 구하는 문제이다.별자리의 조건두 별 사이의 거리는 서로 다른 두 별을 일직선으로 이은 선의 길이와 같다.모든 별은 직/간접적으로 연결되어 있다.풀이두 별 사이의 거리를 가중치로 두고, 크루스칼 알고리즘을 이용하여 최소 비용을 구한다.직각 삼각형의 대각선의 길이를 구하는 공식을 이용하여 가중치를 구한다.$c^2 = a^2 + b^2 $ $c = \sqrt{{a}^2 + {b}^2}$ $c = \sqrt{(x1-x2)^2 + (y1-y2)^2}$가중치와 두 별의 번호를 간선 list 에 저장한다.가중치를 기준으로 오름차순으로 간선 list를 정렬한다.작은 가중치부터 순서대로 별들을 연결한다. (부모..