99클럽 코테 스터디 2일차 TIL: 이분 탐색의 범위
·
일기장/항해99클럽 4기
오늘의 문제 | 11561. 징검다리우선 처음 읽었을 때 그리디로 해결해야 하는 생각이 들었다. 정해진 숫자가 없고 머리로는 대충 때려맞춰서 풀 수 있는 문제들은 대체로 그리디인 적이 많았다고 생각했다. 우선 규칙이 이해가 안가는 부분이 있어서 문제부터 꼼꼼히 읽었다.징검다리는 N번까지 있고, 시작점을 아무거나 선택할 수 있음.최대 징검다리 수를 구하는 것으로, 시작하자마자 바로 N번을 밟아버리는 경우의 수인 1번이 최소치임.입력값이 10^16이므로 정상적인 방법으로 해결은 불가능(브루트 포스 불가능)따라서 지난 번처럼 이분 탐색을 이용해야겠다는 생각. 실제로 알고리즘 분류도 이분 탐색. 아이디어 정리우선 우리가 찾아야 하는건 최대 횟수이다. 바로 전 점프보다 더 많이 뛰어야 하므로, 시작할 때 1번 뛰..
99클럽 코테 스터디 1일차 TIL: 브루트포스와 이분 탐색
·
일기장/항해99클럽 4기
오늘의 문제 | 1072. 게임X의 범위가 10억이기는 하지만, 숫자가 변하기 위한 조건을 생각했을 때 천만번 정도의 실행이면 충분히 도전해볼만 하다는 생각에 브루트포스로 접근하기 시작했다. 핵심 아이디어만약 Z가 99나 100일 경우, 이 숫자는 절대 변할 수 없다. 99%나 100%에서는 더이상 커질 수 없다는 생각이다. 따라서 Z가 99나 100이 나왔을 경우에는 바로 -1을 출력하도록 했다. 하지만 틀렸다… 시간초과가 아니라 틀렸다는게 이해가 안가긴 했다. 도저히 틀릴 가능성이 없어보이는데 틀린 걸로 보아, 실수 오차의 가능성을 생각했다.# 기존 Z를 구하는 식Z=int(Y/X*100)# 실수 오차를 최소화하기 위한 식Z=int((Y*100)/X)결국 정답을 맞췄다! 테스트에서 2초가 나오길래 틀..