본문 바로가기

백준13

[백분] 1107: 리모컨 파이썬 풀이 - 부르트포스 https://www.acmicpc.net/problem/1107 1107번: 리모컨 첫째 줄에 수빈이가 이동하려고 하는 채널 N (0 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 고장난 버튼의 개수 M (0 ≤ M ≤ 10)이 주어진다. 고장난 버튼이 있는 경우에는 셋째 줄에는 고장난 버튼 www.acmicpc.net 다행히 리모컨은 부시지 않았습니다. 처음에는 그리디로 접근을 하다가 반례 해결이 도저히 안돼서, 부르트포스 방식을 생각하게 됐습니다. 풀이는 다음과 같습니다. 1. 채널 버튼을 누르지 않고 이동하는 경우를 구한다. 2. 누를 수있는 채널 버튼들로 중복조합을 구한다. 3. 중복 조합을 통해서 이동하는 경우가 버튼을 최소로 누르는 방법이면 업데이트한다. 풀이는 좋았으나, 실수를 연속해.. 2021. 8. 16.
[백준] 1011: Fly me to the Alpha Centauri 파이썬 풀이 1011번: Fly me to the Alpha Centauri 우현이는 어린 시절, 지구 외의 다른 행성에서도 인류들이 살아갈 수 있는 미래가 오리라 믿었다. 그리고 그가 지구라는 세상에 발을 내려 놓은 지 23년이 지난 지금, 세계 최연소 ASNA 우주 비행 www.acmicpc.net 문제설명 어떤 이동거리에 대해 움직이는 최소 횟수를 구하는 문제입니다. 이동 방법은 1칸 점프 부터 시작해서, n 번째에 x칸 점프 했다면 n+1 번째는 x-1 or x or x+1 칸 점프할 수 있습니다. 끝 지점은 반드시 1칸 점프로 도착해야합니다. 풀이과정 1. 이동거리가 n일 때, 최소 이동횟수를 구해봤습니다. 2. 위를 구해보니, 특정 이동 횟수에 대해 갈 수 있는 최대 거리의 규칙이 보였습니다. 3. 이동횟.. 2021. 7. 28.
[백준] 1072: 게임 파이썬 리뷰 - 연산 오류, Y*100//X, int(Y/X*100) 1072번: 게임 김형택은 지금 몰래 Spider Solitaire(스파이더 카드놀이)를 하고 있다. 형택이는 이 게임을 이길 때도 있었지만, 질 때도 있었다. 누군가의 시선이 느껴진 형택이는 게임을 중단하고 코딩을 하기 시 www.acmicpc.net 풀이는 전형적인 이분탐색 문제입니다. 하지만 연산에 관한 문제 때문에 리뷰를 해보려합니다. 해당 문제에서 승률을 계산하는 방법은 두가지가 있습니다. 1. Y*100//X 2. int(Y/X*100) 해당 문제에서 2번을 이용해 연산을 하면 틀립니다. 간단한 예시는 29/50이 있습니다. 29/50*100=58.0 이어야 하는데, 파이썬 연산에서는 그렇지 않았습니다. 여기서 주목해야 할 것은 실수의 연산입니다. 실수의 연산은 부정확할 수가 있으므로 사용에 .. 2021. 5. 9.
[백준] 6236: 용돈 관리 파이썬 리뷰 6236번: 용돈 관리 현우는 용돈을 효율적으로 활용하기 위해 계획을 짜기로 하였다. 현우는 앞으로 N일 동안 자신이 사용할 금액을 계산하였고, 돈을 펑펑 쓰지 않기 위해 정확히 M번만 통장에서 돈을 빼서 쓰기로 www.acmicpc.net 풀이는 해당 블로그를 참고했습니다. 전형적인 이분 탐색 문제입니다만... 고려하지 못한 부분과 실수한 부분이 많아 이를 되짚어 보려합니다. 문제 풀이는 적절한 금액(조건을 만족하면서 최소가 되는)을 이분탐색으로 찾는 것입니다. 처음에 제가 잘못 생각한 것은 하루 소비 금액 > 뽑을 수 있는 금액(설정 금액) 이어도 하루에 여러번 돈을 뽑으면 된다는 것이었습니다. 문제에서 돈을 뽑을 때는 가지고 있는 돈을 모두 반환하고 뽑기 때문에 잘못된 생각입니다. 이 때문에 설정 .. 2021. 2. 23.