Algorithm/Baekjoon Online Judge
-
[BOJ] 10250번Algorithm/Baekjoon Online Judge 2022. 3. 12. 00:37
https://www.acmicpc.net/problem/10250 10250번: ACM 호텔 프로그램은 표준 입력에서 입력 데이터를 받는다. 프로그램의 입력은 T 개의 테스트 데이터로 이루어져 있는데 T 는 입력의 맨 첫 줄에 주어진다. 각 테스트 데이터는 한 행으로서 H, W, N, 세 정수 www.acmicpc.net Python3 N명의 사람이 호텔에 왔다고 했을 때 결국 방의 위치는 1층의 1번방 부터 차례대로 H층의 1번방까지, 이후에 1층의 2번방부터 H층의 2번방까지 차례대로 1번방->2번방->3번방.... 순으로 배정된다. 따라서 방의 층수는 N명의 사람이 왔을 때 H층까지 사람을 배정하고 남은 나머지가 된다. 몇 번째 방인지는 N명의 사람을 H로 나누었을 때 몇번 째 열에 해당하는 지를..
-
[BOJ] 2869번Algorithm/Baekjoon Online Judge 2022. 3. 12. 00:01
https://www.acmicpc.net/problem/2869 2869번: 달팽이는 올라가고 싶다 첫째 줄에 세 정수 A, B, V가 공백으로 구분되어서 주어진다. (1 ≤ B < A ≤ V ≤ 1,000,000,000) www.acmicpc.net Python3 주어진 문제 그대로 반복문을 사용하여 구현한 결과 100 99 1000000000 예제 입력에서 오랜시간이 걸렸다. 1.5초 시간제한에 걸릴게 분명했고 다른 방법을 생각했다. 새롭게 생각한 방식은 어쨋든 마지막에 정상을 오르기 위해서 A만큼 올라가려고 하루를 쓴다고 생각하는 것이다. 그러면 V-A만큼을 몇일을 걸려 올라가게 되는지 생각하면 된다. 이때는 낮에 올라가고 밤에 미끄러지는 것을 모두 생각하여 하루에 A-B만큼 올라갈테니 이것으로 ..
-
[BOJ] 1193번Algorithm/Baekjoon Online Judge 2022. 3. 11. 23:36
https://www.acmicpc.net/problem/1193 1193번: 분수찾기 첫째 줄에 X(1 ≤ X ≤ 10,000,000)가 주어진다. www.acmicpc.net Python3 우선 구간을 나누자고 생각했고 구간을 나누려고 보니 [1/1], [1/2, 2/1], [1/3, 2/2, 3/1] ..... 이런식으로 1, 2, 3, 4 개로 한 줄에 들어갈 수 있는 수의 개수가 1씩 늘어나는 것을 보았다. 저 값들을 차례로 더해갈 때 X보다 커지는 순간 어느 라인에 속하는지 알 수 있을 것으로 생각했다. 따라서 처음에는 반복문을 통해 1부터 차례로 더해가며 X보다 커질 때를 찾았는데 이 방법은 한 라인에서 몇 번째 수인지 알기도 번거로웠다. 또한 값이 커질 때를 찾게되기 때문에 값이 커지기 전..
-
[BOJ] 1712번Algorithm/Baekjoon Online Judge 2022. 3. 10. 12:19
https://www.acmicpc.net/problem/1712 1712번: 손익분기점 월드전자는 노트북을 제조하고 판매하는 회사이다. 노트북 판매 대수에 상관없이 매년 임대료, 재산세, 보험료, 급여 등 A만원의 고정 비용이 들며, 한 대의 노트북을 생산하는 데에는 재료비와 www.acmicpc.net Python3 처음에는 반복문을 사용해서 생산대수를 늘려가면서 총 수입이 총 비용보다 많아지는 지점을 찾았는데 이 방법은 시간초과가 났다. 반복문을 쓰지않고 해결할 수 있는 방법을 생각하다가 식을 작성해보았다. A + B*X = C*X (A:고정비용, B:가변비용, C:판매비용, X=판매량) 결국 이 식은 A/(C-B) = X 로 정리된다. 즉 A/(C-B)와 판매량이 같아지게 된다. 하지만 이 식은 ..
-
[BOJ] 2292번Algorithm/Baekjoon Online Judge 2022. 3. 9. 13:20
https://www.acmicpc.net/problem/2292 2292번: 벌집 위의 그림과 같이 육각형으로 이루어진 벌집이 있다. 그림에서 보는 바와 같이 중앙의 방 1부터 시작해서 이웃하는 방에 돌아가면서 1씩 증가하는 번호를 주소로 매길 수 있다. 숫자 N이 주어졌 www.acmicpc.net Python3 코드 문제를 보자마자 규칙을 찾아야한다고 생각했고 우선 가운데 벌집(1)을 기준으로 각 겹마다 몇개의 벌집이 있는지 셌다. 처음 1개의 벌집을 시작으로 6개, 12개, 18개, 24개로 6의 배수로 벌집의 개수가 증가하는 것을 발견했다. 따라서 반복문을 통해 주어진 N에 도달할 때까지 몇 개의 겹을 지나야하는지를 카운트 하였다. N은 bee라는 변수에 저장했는데 내맘대로 벌의 위치라고 생각했..