/*
c언어 문법
구조체 포인터
-> 자료구조
-----------------------
c언어
python
자바
c++
--------------------------------
// 자료구조, 알고리즘 ( 활용 )
스택 큐 정렬 탐색 그래프 A,B레벨
C레벨 ( 연결리스트, 트리 .. )
--------------
//c# 유니티 // 앱 // 게임 // AI 이론, 실습 ( python )
int a=10;
int arr[10]={}; //실제로 한 곳에 몰려 있어
arr[0] arr[1] arr[2] ... arr[9]
Stack : 쌓는거 ( LIFO Last In First Out ) 후입선출
Queue : 대기줄 ( FIFO First In First Out ) 선입선출
스택 프로그램 만들기
#include <stdio.h>
#define SIZE 50
int stack[1001]={};
int top = -1; // 마지막 데이터의 위치
//////// 스택이 비었는지???? 가득찼는지?? 체크???
void push(int x) // 맨 위에 얹기
{
if(top==SIZE-1) return ;
top++;
stack[top]=x;
}
//void pop() // 맨위의 값 빼기
//{
// if(top==-1) return ; // isEmpty??
// printf("%d\n",stack[top]);
// top--;
//}
int pop()
{
if(top==-1) return -100;
return stack[top--];
}
int main()
{
int i, n, a;
scanf("%d",&n);
for(i=0;i<n;i++){
scanf("%d",&a);
push(a);
}
while(top!=-1)
{
//pop();
printf("%d\n",pop());
}
return 0;
}
*/
/*
#include <stdio.h>
int stack[1001]={};
int top = -1;
void push(int k)
{
top++;
stack[top]=k;
}
void pop()
{
if(top==-1){
return ;
}
printf("%d ",stack[top]);
top--;
}
int main()
{
int n,i,k;
scanf("%d",&n);
for(i=0; i<n; i++){
scanf("%d",&k);
push(k);
}
while(top != -1){
pop();
}
return 0;
}
*/
/*
#include <stdio.h>
#include <string.h>
char stack[11]={};
int top=-1;
void pop()
{
if(top==-1) return ;
printf("%c",stack[top--]);
}
int main()
{
int i,n,k;
gets(stack);
top = strlen(stack)-1;
while(top!=-1){
pop();
}
return 0;
}
*/
#include <stdio.h>//천단위 구분기호
#include <string.h>
char stack[300]={};
int top=-1;
void push(int i)
{
}
int main()
{
int n,k,i;
char str[201]={};
scanf("%d%s",&n,str);
if(n%3==0){
n+=n/3-2;
}
else{
n+=n/3-1;
}
int cnt=0;
for(i=n-1; i>=0; i--){
push(str[i]);
cnt++;
if(cnt%3==0)
{
push(',');
}
}
for(i=0; i!=n; i++){
printf("[%c]",stack[i]);
}
return 0;
}