본문 바로가기
반응형

파이썬7

[Python] 백준 20055: 컨베이어 벨트 위의 로봇 solved.ac 기준 Gold5 구현 문제의 장점은 문제만 읽어내면 어떻게든 풀 수 있다는 것이고, 단점은 문제만 읽어서 모든 것을 이해해내야한다는 것이다. 문제를 풀다가 자기확신에 빠져들지 않고 최대한 문제 지문에 코드를 일대일 대응 시키게끔 해야 풀기가 수월해지는데, 나는 중간에 자기확신을 가졌기 때문에 로직은 완벽히 짜고서 자그마한 수정만 하면 되는걸 많이 헤맨 문제였다. 문제 길이가 N인 컨베이어 벨트가 있고, 길이가 2N인 벨트가 이 컨베이어 벨트를 위아래로 감싸며 돌고 있다. 벨트는 길이 1 간격으로 2N개의 칸으로 나뉘어져 있으며, 각 칸에는 아래 그림과 같이 1부터 2N까지의 번호가 매겨져 있다. 벨트가 한 칸 회전하면 1번부터 2N-1번까지의 칸은 다음 번호의 칸이 있는 위치로 이동하고.. 2024. 4. 13.
[Python] 백준 1325: 효율적인 해킹 실버1~2 문제를 손풀기 겸 뇌 깨우기로 계속해서 풀고 있다. 한창 백준 티어 끌어올리기 할 때 만큼 빠르지는 않지만 문제 해석 능력과 자료구조, 알고리즘 적용 감각이 돌아오고 있는 것이 느껴저 좋다. 이번 문제는 간단하게 그래프를 사용하여 풀 수 있는 문제이다. 문제 해커 김지민은 잘 알려진 어느 회사를 해킹하려고 한다. 이 회사는 N개의 컴퓨터로 이루어져 있다. 김지민은 귀찮기 때문에, 한 번의 해킹으로 여러 개의 컴퓨터를 해킹 할 수 있는 컴퓨터를 해킹하려고 한다. 이 회사의 컴퓨터는 신뢰하는 관계와, 신뢰하지 않는 관계로 이루어져 있는데, A가 B를 신뢰하는 경우에는 B를 해킹하면, A도 해킹할 수 있다는 소리다. 이 회사의 컴퓨터의 신뢰하는 관계가 주어졌을 때, 한 번에 가장 많은 컴퓨터를 해킹.. 2024. 4. 7.
[Python] 백준 1002번: 터렛 한동안 학교 공부와 활동으로 인해 접었던 알고리즘 공부를 다시 시작한다. 코딩 재활을 시작하는 단계로 어릴적에 못풀어 실패 상태로 남긴 문제들을 하나씩 풀어본다. 그 중 하나인 '터렛'은 당시에 모든 경우를 찾는다는 생각으로 범위 내 좌표를 브루트포스할 멍청한 생각을 했었다. 하지만 잘 살펴보니 경우의 수는 0, 1, 2, 무한 밖에 없는 간단한 문제였다. 터렛의 좌표를 원의 중심, 터렛이 감지한 적의 거리를 반지름으로 두면 간단하게 풀 수 있다. 문제 조규현과 백승환은 터렛에 근무하는 직원이다. 하지만 워낙 존재감이 없어서 인구수는 차지하지 않는다. 다음은 조규현과 백승환의 사진이다. 이석원은 조규현과 백승환에게 상대편 마린(류재명)의 위치를 계산하라는 명령을 내렸다. 조규현과 백승환은 각각 자신의 터.. 2024. 4. 5.
[코드조각] 플로이드-워셜 플로이드-워셜 알고리즘은 그래프 간의 모든 정점에서 다른 정점까지의 최단거리를 쉽게 구하는 알고리즘이다. 모든 정점과 정점 사이의 최단거리가 필요하거나, 키 비교, 줄 세우기 등의 문제에서 사용할 수 있다. import math N = int(input()) #정점의 개수 M = int(input()) #입력할 간선 정보의 개수 #정점과 정점사이의 거리. d[i][j]는 노드 i에서 노드 j까지의 거리 d = [[math.inf for i in range(N)] for j in range(N)] #자기 자신부터 자기 자신의 거리가 0 for i in range(N): d[i][i] = 0 #간선 정보 입력 while M: # 출발지점, 끝지점, 비용 S, E, C = map(int, input().spl.. 2021. 6. 11.
[코드조각] 다익스트라 최소힙을 이용한 다익스트라. 기본으로는 start부터 모든 지점까지의 최소거리가 담긴 list를 반환한다. import heapq import math def dijkstra(nodes, start): N = len(nodes) d = [math.inf] * (N+1) q = [] qlen = 1 d[start] = 0 heapq.heappush(q, (d[start], start)) while qlen > 0: tmp = heapq.heappop(q) qlen -= 1 if d[tmp[1]] dtmp: d[i[0]] = dtmp heapq.heappush(q, .. 2021. 5. 7.
Python 3버전도 한글파일을 읽을 수 있다! python2 버전에는 pyhwp라는 모듈이 존재해 hwp 파일을 읽고 쓸 쑤 있다. 하지만 python3에는 구동하지 않기 때문에 머리를 싸매고 있었는데, olefile 모듈을 통해 읽을 수 있다는 것을 알아냈다. 간단하게 python3으로 hwp 파일을 읽는 법을 소개하겠다. 1. olefile 설치 https://olefile.readthedocs.io/en/latest/Install.html How to Download and Install olefile — olefile 0.46 documentation Download and Install To use olefile with other Python applications or your own scripts, the simplest solutio.. 2019. 7. 21.
반응형