GreatAlgorithm-Study / AlgorithmStudy

🌟알고리즘 대장정🌟
6 stars 4 forks source link

[11주차_수요일] 물병 #145

Open yeongleej opened 4 days ago

yeongleej commented 4 days ago
### 🤔 시간복잡도 고려사항

### 💡 풀이 아이디어
baexxbin commented 1 day ago

🤔 시간복잡도 고려사항

💡 풀이 아이디어

Jewan1120 commented 1 day ago

🤔 시간복잡도 고려사항

💡 풀이 아이디어

yeongleej commented 1 day ago

🤔 시간복잡도 고려사항

=> O(N)으로 생각해보기

💡 풀이 아이디어

  1. K-1개의 물병 담기
    • N에서 2^i을 계속 빼줘서 물병 사용하기
    • 2^i는 N보다 작은 최대 2의 제곱수
    • 이떄 N이 0이되면 0 출력
  2. 1번에서 N이 0이 되지 않았다면, 마지막 물병을 만들기 위한 구매해야 하는 최소 물병 개수 구하기
    • 2^i > N인 값 구하기
    • 2^i - N == N이 2^i가 되기 위해 구매햐야 하는 물병 수

int ans = 0; while(true) { int bc = Integer.bitCount(N); if(bc <= K) break;

N++;
ans++;

}



> 비트연산 쉽지않네요 ㅜㅜㅠㅠ 😢 
yeahdy commented 20 hours ago

🤔 시간복잡도 고려사항

💡 풀이 아이디어

그런데 10 3 를 입력하면 0 으로 출력 되던데, 정답으로 넘어가더라구요? 0개는 -1 로 출력해야 하는것 아닌가요..??? (그런데 0일 경우 -1 로 변환해서 출력하게 하면 오답으로 돼요)