Loading...
2023. 4. 8. 03:12

파이썬 실수 오차 없이 정확하게 계산하게 해주는 Decimal

1. 문제 12727번: Numbers (Small) (acmicpc.net) 12727번: Numbers (Small) The first line of input gives the number of cases, T. T test cases follow, each on a separate line. Each test case contains one positive integer n. Limits 1

2023. 4. 8. 01:49

되도록이면 실수로 알고리즘을 풀지 말아야하는 이유1

1. 문제 27496번: 발머의 피크 이론 (acmicpc.net) 27496번: 발머의 피크 이론 각 시간에 따른 혈중 알코올 농도는 {0.045, 0.089, 0.133, 0.131, 0.127}이다. 따라서 지금으로부터 2시간 후와 3시간 후, 총 두 시간 동안 혈중 알코올 농도를 유지할 수 있다. www.acmicpc.net 2. 풀이 혈중 알코올 농도는 알코올 양 정수 * 0.001로 정의한다고 하니까, 정수 배열로 주어지는 배열을 왼쪽부터 순회하면서, 0.001을 곱한 다음 합해나가면서, 매 인덱스마다 0.129와 0.138사이에 몇번이나 있었는지 세면 될것 O(N)에 해결하기 위해 prefix sum을 사용한다. 그런데 시간 L 이후에는, L 전에 먹었던 알코올이 사라지므로... 최초로 술을..

이분 탐색 응용문제로 올바른 사고 연습하기2

1. 문제 18113번: 그르다 김가놈 (acmicpc.net) 18113번: 그르다 김가놈 첫 번째 줄에 손질해야 하는 김밥의 개수 N, 꼬다리의 길이 K, 김밥조각의 최소 개수 M이 주어진다. (1 ≤ N ≤ 106, 1 ≤ K, M ≤ 109, N, K, M은 정수) 두 번째 줄부터 김밥의 길이 L이 N개 주어진다. www.acmicpc.net 2. 풀이 문제를 보면 김밥의 길이가 k보다 큰 경우, 양쪽을 균일하게 k씩 자른다 하지만 2k보다 짧은 경우, 한쪽 k만 자른다. k보다 작거나 같은 경우 김밥은 그냥 폐기한다 김밥 길이를 받을 때, L > k인 경우, L 2k일때, L-2k를 리스트에 저장한다 L == 2k일때는 문제에서 아무런 언급이 없기..

알고리즘 테크닉 - 런타임 전의 전처리 기법

1. 런타임 전의 전처리(preprocessing) 실제 문제를 해결하는 프로그램을 작성하기 전에, 해당 프로그램의 핵심을 얻기 위한 다른 프로그램을 미리 작성하여 원하는 값을 구해놓고, 문제를 해결하는 프로그램을 작성하는 기법 프로그램 안에 원하는 값을 계산하는 코드를 작성하지 않고, 미리 필요한 값을 계산해놓은 다음에 실제 프로그램에서 시간복잡도를 줄이는 기법이다. 이런 기법은 사실 알게모르게 많이 써왔다.. 최근에 이것이 핵심인?문제를 풀어서 복기해본다 (태그는 이분탐색이었지만) 2. 문제 4030번: 포켓볼 (acmicpc.net) 4030번: 포켓볼 선영이는 당구대를 상근이에게 빌렸다. 상근이는 선영이에게 공 16개가 들어갈 수 있는 4×4 크기의 트레이도 같이 주었다. 이 트레이는 그림 (a)..

2023. 4. 2. 14:17

특별한 이분탐색 -실수 구간에서도 이분탐색이 가능할까-

1. 문제 14609번: 구분구적법 (Large) (acmicpc.net) 14609번: 구분구적법 (Large) 첫 번째 줄에는 다항함수의 차수를 나타내는 양의 정수 K(1 ≤ K ≤ 10) 가 주어진다. 두 번째 줄에는 최고차항부터 내림차순으로 각 항의 계수를 나타내는 정수 ci (0 ≤ ci ≤ 10, 1 ≤ c1 ≤ 10) 가 www.acmicpc.net 2. 풀이 실제 적분값과 근삿값이 일치하게 만드는 epslion을 찾는다 그러면 실제 적분값을 먼저 구해야겠지 최대 10차 다항함수까지로 제한되어있고 다항함수 적분 방법도 힌트로 나와있다 그러면 $c_{0}x^{k} + c_{1}x^{k-1} + ... + c_{k}$를 적분하면 된다 그러면 $$\frac{c_{0}x^{k+1}}{k+1} + \..

이분탐색 올바른 사고 연습하기 1편

1. 문제1 1072번: 게임 (acmicpc.net) 1072번: 게임 김형택은 지금 몰래 Spider Solitaire(스파이더 카드놀이)를 하고 있다. 형택이는 이 게임을 이길 때도 있었지만, 질 때도 있었다. 누군가의 시선이 느껴진 형택이는 게임을 중단하고 코딩을 하기 시 www.acmicpc.net 2. 풀이1 탐색범위는 x+1부터 충분히 큰 수까지.. x가 제한이 10의 9제곱인데.. 이는 입력으로 주어지는 x가 10의 9제곱이지 가능한 제한이 10의 9제곱이라는 뜻은 아니다. 그래서 대충 10의 18제곱까지 탐색하도록 범위를 잡았다 그리고 절대로 지지 않는다고 했기 때문에... x 기준으로 현재 x+k를 잡았다면... y값은 y+k로 바뀌겠지 그리고 그때 변화된 승률도 (y+k)*100//(..