본문 바로가기
728x90

전체 글432

[python] 백준 20149 선분 교차 3 https://www.acmicpc.net/problem/20149   문제 해결선분이 겹치는지 안겹치는지 확인할 때는 CCW (Counter Clock Wise)를 사용한다.선분 1, 선분 2가 있으면 선분 1과 선분 2의 끝점 각각을 CCW를 사용했을 때 부호가 반대로 나오고 선분1의 두 끝점과 선분2를 CCW를 사용했을 때 부호가 반대로 나오면 무조건 두 선분은 만나게 된다.문제는 끝점이 교차할 때 CCW가 0이 나올 경우가 있는데 조건을 나누어 코드를 짜야한다.선분 1의 끝점 두개와 선분 2의 끝점을 보고 선분 1에서 x축 값이 큰 값 (x 같으면 y값)이 선분 1의 x축 값이 작은 값(x같으면 y값)보다 크고 선분 2의 작은값보다 크고 큰값보다 작으면 겹친다. (코드 참고...) CODEimpo.. 2024. 6. 16.
파이썬 로그 파일 남기기 서버를 사용하다보면 log를 기록해야 하는 경우가 많은데 사실 코드를 제대로 짜본 적이 없어서 짧게 공부하게 되었다.금방 까먹을 것 같아서 정리를 한다. 참고 블로그https://blog.naver.com/sangja84/222970140189 파이썬으로 로그파일 남기기 (logging 모듈)파이썬으로 로그 파일을 만드는 방법은 아래와 같습니다. 더 자세한 설명을 원하시는 분은 아래 유튜브 영...blog.naver.com 파이썬에는 logging이라는 기본 라이브러리가 있다.import logging 로그를 시작할 때logger = logging.getLogger(__name__)formatter = logging.Formatter('[%(axctime)s] %(message)s', datefmt = .. 2024. 6. 16.
[python] 백준 22940 선형 연립 방정식 https://www.acmicpc.net/problem/22940 문제 해결Reduced Row echelon form 실수 부분 반올림 주의 (함부로 int 쓰지 말것) CODEimport sysinput = sys.stdin.readlinen = int(input())arr = [list(map(int, input().split())) for _ in range(n)]for i in range(n): div = arr[i][i] for j in range(i, n + 1, 1): arr[i][j] /= div for j in range(n): if i==j:continue div = arr[j][i] # 계수가 1인 항의 몇배를 곱해서 없앨 수 .. 2024. 6. 15.
python] 백준 1743 음식물 피하기 https://www.acmicpc.net/problem/1743  문제 해결일반적인 bfs문제; CODEimport sysinput = sys.stdin.readlinefrom collections import dequedef bfs(x,y): que = deque() dxs = [-1, 1, 0, 0] dys = [0, 0, -1, 1] que.append((x,y)) visited[x][y] = 1 result = 1 while que: a, b = que.popleft() for dx, dy in zip(dxs, dys): na = a + dx; nb = b + dy if 0 2024. 6. 14.
728x90