Skip to content

260114 : [BOJ 31963] 두 배#2307

Open
3veryDay wants to merge 1 commit intomainfrom
현서/2304/2

Hidden character warning

The head ref may contain hidden characters: "\ud604\uc11c/2304/2"
Open

260114 : [BOJ 31963] 두 배#2307
3veryDay wants to merge 1 commit intomainfrom
현서/2304/2

Conversation

@3veryDay
Copy link
Copy Markdown
Contributor

🚀 이슈 번호

Resolve: {#2304}

🧩 문제 해결

스스로 해결:

🔎 접근 과정

문제 해결을 위한 접근 방식을 설명해주세요.

  • 🔹 어떤 알고리즘을 사용했는지 :
  • 🔹 어떤 방식으로 접근했는지 : 실제 숫자를 구하고, 비교하는 건 시간 초과가 나더라구요...ㅠㅠ
  • 그래서 힌트 참고했는데, 실제 숫자를 만지는 것이 아닌, 이전 숫자에 2를 몇번 곱했는지만 추적하면서, 현재 숫자와 이전 숫자 비교하면서 지수만 관리하는 방식으로 코드를 짰습니다.
  • 생각해내기 어려운 전략?인 것 같아서 틀처럼 기억해두고 있으면 좋을 것 같더라구요

⏱️ 시간 복잡도

시간 복잡도 분석을 작성해주세요.
최악의 경우 수행 시간은 어느 정도인지 분석합니다.

  • Big-O 표기법: O(?)
  • 이유:

💻 구현 코드

import sys, math
input = sys.stdin.readline

N = int(input())
arr = list(map(int, input().split()))


answer = 0 
current_k = 0


for i in range(N-1) :
    prev = arr[i]
    curr = arr[i + 1 ]
    
    if prev > curr :
        count = 0
        while curr < prev :
            curr *= 2
            count += 1
        current_k += count
    
    else :
        count = 0

        while prev * 2 <= curr :
            prev *= 2
            count += 1
        current_k = max(0, current_k - count) 
    answer += current_k
print(answer)

@3veryDay 3veryDay linked an issue Jan 14, 2026 that may be closed by this pull request
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

260114 : 코딩테스트

1 participant