https://www.acmicpc.net/problem/21756
[난이도] Bronze2
[유형] 구현
[풀이]
vector 두개를 선언하여 짝수번째 수들만 1개만 남을 때까지 복사해주면 됩니다.
#include <cstdio>
#include <vector>
using namespace std;
int N;
vector<int> v1,v2;
int main(){
scanf("%d",&N);
for(int i=1;i<=N;i++) v1.push_back(i);
while(v1.size()!=1){
v2.clear();
for(int i=1;i<v1.size();i+=2) v2.push_back(v1[i]);
v1=v2;
}
printf("%d",v1.front());
}
https://github.com/has2/Problem-Solving/blob/master/boj-solved.ac/Bronze2/21756.cpp
'Problem-Solving > BOJ' 카테고리의 다른 글
[BOJ/백준][Silver1] 21758 : 꿀 따기 (C++) (0) | 2022.07.04 |
---|---|
[BOJ/백준][Gold3] 21757 : 나누기 (C++) (0) | 2022.07.04 |
[BOJ/백준][Silver3] 19941 : 햄버거분배 (C++) (0) | 2022.07.04 |
[BOJ/백준][Silver5] 19939 : 박 터뜨리기 (C++) (0) | 2022.07.04 |
[BOJ/백준][Gold2] 17623 : 괄호 (C++) (0) | 2022.07.04 |