2024/10 4

[BOJ, 백준] 14567 선수과목 Python

이전 스터디의 기억을 되짚어가며 .... 선수과목이라는 문제를 풀었습니다.옛날 LeetCode에서의 문제와 거의 유사한 것 같네요.indegree의 차수를 항상 유의하면서 카운팅을 하면 되겠습니다. import sysfrom collections import dequeinput = sys.stdin.readlineN, M = map(int,input().split())node_ind = [0 for _ in range (0, N+1)]answer = [1 for _ in range (0, N+1)]gp = [[] for _ in range (0, N+1)]for _ in range (0,M): a, b = map(int,input().split()) gp[a].append(b) node_..

코딩 2024.10.18

[BOJ, 백준] 25958 예쁜수 Python

처음에 문제 이해를 잘못했었는데, 차분히 잘 생각해보니까 어느정도 구조가 눈에 보이기 시작했다. 즉, 주어진 "N 이하의 예쁜 수들로" N을 어떻게 만들 수 있을까? 라는 문제가 되겠다.import mathN, K = map(int,input().split())pretty_number = []for i in range (1, N + 1): str_i = str(i) n = len(str_i) summary = 0 for j in range (n): summary += int(str_i[j]) if i % summary == 0: pretty_number.append(i)dp = [0 for _ in range (0, N + 1)]for i in rang..

코딩 2024.10.15

[BOJ, 백준] 1036 36진수 Python

굉장히 그리디하게 풀면 될 것 같은 느낌 (경우의 수를 구하는 경우에서는 특히 브루트포스로 구해도 될 것 같다) 답안 코드는 이하와 같다.import sys from collections import defaultdictinput = sys.stdin.readlineN = int(input())dict = {}num = {}for i in range (0,10): dict[i] = str(i) num[str(i)] = ifor i in range (0,26): dict[i + 10] = chr(i + 65) num[chr(i + 65)] = i + 10summary = [0 for _ in range (0,36)]#여기까지 기본 세팅for _ in range (0,N): str..

코딩 2024.10.07

[BOJ, 백준] 24726 미적분학 입문하기 2 Python

(문제 사진이 안보인다... 어째서지)  문제 해결에 있어 주안점은 2가지가 되겠다. 1. 삼각형을 어떠한 방식으로 분할할 것인가? -> 정렬에 대한 이해 필요 / 회전체를 어떻게 분할 할 것인가? 2. 부피 공식의 구현  1.  x축에 대해서 회전을 시킬 경우, x축의 값에 따른 정렬y축에 대해서 회전을 시킬 경우에는, y축의 값에 따른 정렬이 필요하겠다. 정렬된 순서대로 부피를 구해주면 되겠다. 즉, (첫번째 - 두번째를 이은 직선으로 회전시켰을때) + (두번째 - 세번째를 이은 직선으로 회전시켰을 때) - (세번째 - 첫번째를 이은 직선으로 회전시켰을 때)  2. 부피 공식의 구현에 있어서는 케이스를 조금 나눌 필요가 있다.x좌표 혹은 y좌표가 같은지 확인할 필요가 있다. (두점이 주어졌을 때 직선..

코딩 2024.10.04