99클럽 코테 스터디 13일차 TIL - 그리디,이분탐색 (백준27961 - 고양이는 많을수록 좋다)
반응형
https://www.acmicpc.net/problem/27961
- 오늘의 학습 키워드 : 그리디..? 이분탐색?
- 공부한 내용
import sys # 최소 동작 수를 계산하는 함수 정의 def min_actions(N): actions = 0 # 2의 actions 제곱이 N 이상이 될 때까지 actions 증가 while 2 ** actions < N: actions += 1 # 최종적으로 필요한 동작 수는 actions + 1 return actions + 1 # 입력 값 N을 받아 처리 N = int(sys.stdin.readline().strip()) # N이 0이 아니면 최소 동작 수를 출력하고, 0이면 0을 출력 print(min_actions(N) if N != 0 else 0)
import sys # 입력 값 N을 받음 N = int(sys.stdin.readline().strip()) # 이진 탐색 범위 설정 # 2**10 ≈ 10**3 이므로 2**40 ≈ 10**12 정도로 충분히 큰 범위를 잡음 start, end = 0, 40 result = 0 # 이진 탐색을 통해 2의 몇 제곱이 N 이상인지 찾기 while start <= end: mid = (start + end) // 2 # 2의 mid 제곱이 N 이상이면, 가능한 답으로 저장하고 범위를 줄임 if 2 ** mid >= N: result = mid end = mid - 1 # 그렇지 않으면, 시작 범위를 높여 더 큰 제곱수를 탐색 else: start = mid + 1 # N이 0인 경우, 결과는 0 if N == 0: print(0) # 그 외의 경우, 찾은 제곱수에 1을 더해 결과 출력 else: print(result + 1)
- 오늘의 회고
- 오늘 문제는.. 좀 생각보다 쉬운 문제..?
그냥 2의 몇승보다 작냐 이걸 구하는 문제라고 볼 수 있었다. - 오늘은 공부하기 싫은 날이니깐 끝
- 오늘 문제는.. 좀 생각보다 쉬운 문제..?
반응형
'Python > 😈 99클럽 코테 스터디 4기 TIL' 카테고리의 다른 글
99클럽 코테 스터디 15일차 TIL - 그리디 (백준13417 - 카드 문자열) (2) | 2024.11.11 |
---|---|
99클럽 코테 스터디 14일차 TIL - 그리디 (백준14916 - 거스름돈) (1) | 2024.11.10 |
99클럽 코테 스터디 12일차 TIL - BFS (백준7569- 토마토) (0) | 2024.11.08 |
99클럽 코테 스터디 8일차 TIL - DFS&BFS (백준2644- 촌수계산) (3) | 2024.11.04 |
99클럽 코테 스터디 7일차 TIL - (프로그래머스 - 모음사전) (3) | 2024.11.03 |