인프런 커뮤니티 질문&답변
질문있습니다
작성
·
154
0
안녕하세요? 현재 열심히 수강중인 수강생입니다.
저는 이 문제에 대해서 아래와 같이 코드를 구성하였고, k번째에 정전이 일어났기에 아래의 로직에 의하면 k+1이 다음 작업 순서라 생각하여 이렇게 구성하였습니다. 아직 자료구조에 대해 자세히는 알지 못해 효율성 측면에서 제 코드 별로인지 여쭤보고 싶습니다!
#include
#include
#include
using namespace std;
int main(){
freopen("AA.txt","rt",stdin);
int n,k,i,pos=0,cnt=0,cnt2=0,tot=0;
scanf("%d",&n);
vector a(n+1);
for(i=1;i<=n;i++){
scanf("%d",&a[i]);
tot+=a[i];
}
scanf("%d",&k);
if(tot<=k){
printf("%d",-1);
return 0;
}
while(1){
pos++;
if(pos>n) pos=1;
if(a[pos]==0) continue;
else if(a[pos]>0){
a[pos]--;
cnt++;
if(cnt==k+1){
printf("%d",pos);
break;
}
}
}
return 0;
} 




