본문 바로가기 메뉴 바로가기

CodeAngie

프로필사진
  • 글쓰기
  • 관리
  • 태그
  • 방명록
  • RSS

CodeAngie

검색하기 폼
  • 전체보기 (158) N
    • Study (144) N
      • Algorithm (8)
      • Coding Test (50)
      • Java (5)
      • FastAPI (2)
      • Docker (8)
      • FastCampus (42)
      • Codetree (9)
      • Ect (19) N
    • ML (9)
      • Transformer (5)
      • RecSys (0)
      • Ect (4)

Study (144)
[Python] Colab에서 아래한글(hwp) 문서 읽기

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 함수로 문서의 내..

Study/Ect 2023. 5. 2.
[Python] Colab에서 word 문서 다루기

사무 보조 알바를 하다보니 반복되는 작업이 많아 자동화를 시도해보게 되었다. 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 문서 내 모든 문단을 확인할 수 있다. 하지만 표는 확인이..

Study/Ect 2023. 5. 2.
[백준 BOJ / Python] 2749번 피보나치 수 3 (Pisano Period)

문제 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로 나누었을 때 나머지..

Study/Coding Test 2023. 4. 30.
[백준 BOJ / Python] 4386번 별자리 만들기

문제두 별 사이의 거리만큼 별자리를 만는 비용이 든다고 할 때,n개의 별들을 이어 별자리를 만드는 최소 비용을 구하는 문제이다.별자리의 조건두 별 사이의 거리는 서로 다른 두 별을 일직선으로 이은 선의 길이와 같다.모든 별은 직/간접적으로 연결되어 있다.풀이두 별 사이의 거리를 가중치로 두고, 크루스칼 알고리즘을 이용하여 최소 비용을 구한다.직각 삼각형의 대각선의 길이를 구하는 공식을 이용하여 가중치를 구한다.$c^2 = a^2 + b^2 $ $c = \sqrt{{a}^2 + {b}^2}$ $c = \sqrt{(x1-x2)^2 + (y1-y2)^2}$가중치와 두 별의 번호를 간선 list 에 저장한다.가중치를 기준으로 오름차순으로 간선 list를 정렬한다.작은 가중치부터 순서대로 별들을 연결한다. (부모..

Study/Coding Test 2023. 4. 24.
[백준 BOJ / Python] 1197번 최소 스패닝 트리

문제그래프가 주어졌을 때 최소 스패닝 트리(최소 신장 트리)를 구하고 그의 가중치를 출력하는 문제이다.풀이크루스칼 알고리즘을 사용하여 가중치를 계산한다.간선(edge)을 가중치가 작은 순으로 정렬한다.부모 노드를 자기 자신으로 초기화한다.가장 작은 가중치부터 순서대로 노드를 서로 연결한다.노드를 서로 연결한다는 것은 두 노드가 같은 루트를 갖게 한다는 의미이다.즉 부모 노드가 다를 경우, 아직 서로 연결이 안 된 노드이기에union을 통해 부모 노드를 동일하게 만들어 줌으로써 서로 연결하는 것이다.Python 코드import syssys.setrecursionlimit(10**6)input = sys.stdin.readlinev,e = map(int,input().split())edges = [list(..

Study/Coding Test 2023. 4. 19.
[알고리즘 / Python] 최소신장트리 (크루스칼 알고리즘)

1. 신장 트리 (Spanning Tree)신장 트리는 모든 노드끼리 연결되어 있는 (모든 노드 간에 경로가 존재하는) 연결 그래프가 주어졌을 때, 모든 노드가 연결되지만 사이클이 존재하지 않는 부분 그래프를 의미한다.그래프의 최소 연결 부분 그래프라고 할 수 있다.여기서 최소 연결이란, 간선의 수가 최소가 되는 부분 그래프를 의미한다.n개의 노드가 있을 때 간선의 수는 n-1이 된다.2. 최소 신장 트리최소 신장 트리는 연결 그래프가 주어졌을 때, 가능한 신장 트리 중 가중치 합이 가장 작은 트리이다.2.1. 최소 신장 트리의 특징간선의 가중치 합이 최소여야 한다.노드가 n 개일 때, 간선은 반드시 n-1 개다. (신장 트리 특징)사이클이 존재하지 않는다. (신장 트리 특징)3. 크루스칼 (Kruska..

Study/Algorithm 2023. 4. 14.
[백준 BOJ / Python] 1089번 스타트링크 타워

문제 5*3 개의 전구를 통해 0~9까지의 숫자를 표현할 수 있을 때, 전구가 망가졌을 수도 있음을 가정하고, 켜진 전구들을 살펴보아 만들 수 있는 숫자들의 평균을 구하는 문제이다. 층 안내판의 크기는 5*3 판을 여러 개 이어 붙인 형태이며 판 사이의 꺼진 전구가 존재한다. 풀이 먼저 문제에서 주어진 0~9까지의 표현을 가지고 5*3 판 위의 어떤 전구가 켜졌을 때 어떤 숫자를 만들 수 있는지 판별해야 한다. 예를 들어 5*3 판을 기준으로 (0,0) 위치의 전구가 켜지면 만들 수 있는 숫자들(0,2,3,4,5,6,7,8,9)을 저장한다. 같은 간격으로 숫자가 있기에 (i, j+k*4)를 통해 동일한 위치의 전구들을 확인할 수 있다. 각각의 판이 만들 수 있는 숫자들을 추출한다. 만약 (3,0) 위치의..

Study/Coding Test 2023. 4. 7.
이전 1 ··· 13 14 15 16 17 18 19 ··· 21 다음
이전 다음
«   2025/08   »
일 월 화 수 목 금 토
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 29 30
31
TAG
  • 알고리즘
  • 누적합
  • 분리집합
  • disjoint set
  • MySQL
  • 파이썬
  • 최소신장트리
  • Django
  • docker
  • 그리디
  • 트랜스포머
  • 오블완
  • 백준
  • boj
  • 프로그래머스
  • java
  • lis
  • 구현
  • python
  • COLAB
  • BFS
  • pytorch
  • dfs
  • Transformer
  • greedy
  • 코드트리
  • 티스토리챌린지
  • 코딩테스트
  • DP
  • kruskal
more
링크

Blog is powered by Tistory / Designed by Tistory

티스토리툴바