top of page

소스 코드 제출

공개·회원 50명

250427

#include<stdio.h>

int top=-1, s[80001]={};

void push(int x)

{

top++;

s[top]=x;

}

int pop()

{

if(top!=-1)

{

top--;

}

}

int main ()

{

int n, sum=0;

long long int hi[80005]={};

scanf("%d", &n);

for(int i=0 ; i<n ; i++)

{

scanf("%d", &hi[i]);

}

for(int i=0 ; i<n ; i++)

{

while(s[top]<hi[i]&&top!=-1)

{

pop();

}

sum+=top+1;

push(hi[i]);

}

printf("%d", sum);

}


/*

#include<stdio.h>

int s[500005][2], top=-1;

void push(int x, int z)

{

top++;

s[top][0]=x;

s[top][1]=z;

}

int pop()

{

if(top!=-1)

{

top--;

}

}

int main ()

{

int n, arr[500005];

scanf("%d", &n);

for(int i=0 ; i<n ; i++)

{

scanf("%d", &arr[i]);

}

for(int i=0 ; i<n ; i++)

{

// arr[i]의 신호를 받을 수 있는 탑만 스택에 남겨놓고,

//arr[i] 의 신호를 받을 수 없는 탑은 다 pop해

while(top!=-1&&s[top][0]<arr[i])

{

pop();

}

if(top==-1)

{

printf("0 ");

}

else

{

printf("%d ", s[top][1]);

}

push(arr[i],i+1);

}

}

*/

4회 조회
주소 : 경기도 용인시 광교중앙로 302 블루 스퀘어 602호
연락처 : 031) 216 - 1546 ,     031) 215 - 1546
사업자등록번호 : 465-92-00916
​학원 등록 제 4603호
bottom of page