전체 글
-
백준 1166 python백준/이분 탐색 2023. 3. 13. 12:20
문제 https://www.acmicpc.net/problem/1166 1166번: 선물 민식이는 아이들에게 선물할 같은 크기의 작은 박스를 N개 가지고 있다. 모든 작은 박스는 정육면체이고, 크기는 A × A × A 이다. 민식이는 이 작은 박스를 크기가 L × W × H 인 직육면체 박스에 www.acmicpc.net 풀이 이분탐색을 이용한다. N,L,W,H=map(int, input().split()) l,r=0,max(L,W,H) for _ in range(10000): m = (l+r)/2 x = (L//m)*(W//m)*(H//m) if x
-
백준 1124 python백준/소수 판정 2023. 3. 12. 18:40
문제 https://www.acmicpc.net/problem/1124 1124번: 언더프라임 자연수 X를 소인수분해하면, 곱해서 X가 되는 소수의 목록을 얻을 수 있다. 예를 들어, 12 = 2 × 2 × 3이다. 1은 소수가 아니다. 어떤 수 X를 소인수분해 해서 구한 소수의 목록의 길이가 소수이면, www.acmicpc.net 풀이 에라토스테네스의 체를 이용해 범위 내의 소수를 찾아 set D에 넣는다. 소수가 아닌 수를 뺄 때, 해당 소수를 몇 번 곱한 수인지 계산해 길이 list C에 저장한다. A,B=map(int,input().split()) C,D=[0]*(B+1), set() for i in range(2,B+1): if C[i]==0: D.add(i) j=i while j
-
python 학습 내용 정리백준 2023. 3. 10. 13:37
학습 의도 javascript를 지원하지 않는 회사의 코딩 테스트에 응시하기 위함. 참조 백준 입력값 받는 법 https://naman-develop.tistory.com/37 [파이썬] 00. 입력값 받는 법 🙆♂️ 1개 값 입력 🚀문자열 입력 a = input() 🚀정수형 입력 a = int(input()) 🙆♂️ 띄어쓰기로 구분되는 2개 값 입력 🚀문자열 입력 a,b = input().split() 🚀정수형 입력 a,b = map(int, input().split()) naman-develop.tistory.com list 출력하는 법 https://www.gigong.io/2022/06/14/python-print-list-performance Python list print 방법과 성능 | ..
-
백준 3665 nodejs백준/위상 정렬 2023. 3. 9. 17:27
문제 https://www.acmicpc.net/problem/3665 3665번: 최종 순위 올해 ACM-ICPC 대전 인터넷 예선에는 총 n개의 팀이 참가했다. 팀은 1번부터 n번까지 번호가 매겨져 있다. 놀랍게도 올해 참가하는 팀은 작년에 참가했던 팀과 동일하다. 올해는 인터넷 예선 본부에 www.acmicpc.net 풀이 간선 정보를 2차원 배열의 인접행렬 정보로 저장하고, 수정된 순위에 맞춰 바꿔준다. 위상 정렬을 이용하여 답을 구한다. let [, ...I] = `${require('fs').readFileSync(0)}`.trim().split`\n`.map(e => e.split` `.map(Number)) let [i, O] = [0, []] while (i < I.length) { co..
-
백준 1766 nodejs백준/위상 정렬 2023. 3. 8. 14:26
문제 https://www.acmicpc.net/problem/1766 1766번: 문제집 첫째 줄에 문제의 수 N(1 ≤ N ≤ 32,000)과 먼저 푸는 것이 좋은 문제에 대한 정보의 개수 M(1 ≤ M ≤ 100,000)이 주어진다. 둘째 줄부터 M개의 줄에 걸쳐 두 정수의 순서쌍 A,B가 빈칸을 사이에 두고 주 www.acmicpc.net 풀이 위상정렬을 이용한다. 최솟값 힙을 이용해, 풀 수 있는 문제를 크기가 낮은 순으로 정렬한다. let [[N], ...I] = `${require('fs').readFileSync(0)}`.trim().split`\n`.map(e => e.split` `.map(Number)) class Heap { constructor() { this.A = [] } pu..
-
백준 2623 nodejs백준/위상 정렬 2023. 3. 7. 15:18
문제 https://www.acmicpc.net/problem/2623 2623번: 음악프로그램 첫째 줄에는 가수의 수 N과 보조 PD의 수 M이 주어진다. 가수는 번호 1, 2,…,N 으로 표시한다. 둘째 줄부터 각 보조 PD가 정한 순서들이 한 줄에 하나씩 나온다. 각 줄의 맨 앞에는 보조 PD가 담당한 www.acmicpc.net 풀이 위상 정렬 알고리즘을 활용한다. 사이클이 생길 경우 모든 노드를 방문하지 못함을 이용하여 예외 처리한다. let [[N], ...I] = `${require('fs').readFileSync(0)}`.trim().split`\n`.map(e => e.split` `.map(Number)) const [G, deg, O, Q, V] = [[...Array(N + 1)]..
-
백준 1005 nodejs백준/위상 정렬 2023. 3. 3. 20:20
문제 https://www.acmicpc.net/problem/1005 1005번: ACM Craft 첫째 줄에는 테스트케이스의 개수 T가 주어진다. 각 테스트 케이스는 다음과 같이 주어진다. 첫째 줄에 건물의 개수 N과 건물간의 건설순서 규칙의 총 개수 K이 주어진다. (건물의 번호는 1번부 www.acmicpc.net 풀이 위상 정렬 알고리즘과 DP를 이용한다. let [, ...I] = `${require('fs').readFileSync(0)}`.trim().split`\n`.map(e => e.split` `.map(Number)) let [i, O] = [0, []] while (i < I.length) { const [[N, K], D] = [I[i], [0, ...I[++i]]] const..
-
백준 1052 nodejs백준/비트마스킹 2023. 3. 2. 13:29
문제 https://www.acmicpc.net/problem/1052 1052번: 물병 지민이는 N개의 물병을 가지고 있다. 각 물병에는 물을 무한대로 부을 수 있다. 처음에 모든 물병에는 물이 1리터씩 들어있다. 지민이는 이 물병을 또 다른 장소로 옮기려고 한다. 지민이는 한 번 www.acmicpc.net 풀이 물병의 개수는 N을 2진수로 표현했을 때 1의 개수이다. 물병의 개수가 K보다 작아질 때까지, N에 2 ** (1의 자리 값)을 더해준다. let [N, K] = `${require('fs').readFileSync(0)}`.trim().split` `.map(Number) let o = 0 while (N.toString(2).replace(/0/g, '').length > K) { let..