/* 최솟값 구하기 // 효율성 없는 코드 ㅠㅠ
#include <stdio.h>
int solution(int A[], size_t A_len, int B[], size_t B_len) {
int i, j, sum=0, tmp=0, answer=0;
// A의 오름차순
for(i=0;i<A_len-1;i++) {
for(j=0;j<A_len-i-1;j++) {
if(A[j]>A[j+1]) {
tmp=A[j];
A[j]=A[j+1];
A[j+1]=tmp;
}
}
}
// B의 내림차순
for(i=0;i<B_len-1;i++) {
for(j=0;j<B_len-i-1;j++) {
if(B[j]<B[j+1]) {
tmp=B[j];
B[j]=B[j+1];
B[j+1]=tmp;
}
}
}
for(i=0;i<A_len;i++) {
answer+=A[i]*B[i];
}
return answer;
}
*/
/* 최솟값 구하기 // qsort 함수 이용
#include <stdio.h>
#include <stdlib.h>
// 오름차순
int com_up(const void* a, const void* b)
{
return(*(int*)a-*(int*)b);
}
// 내림차순
int com_down(const void* a, const void* b)
{
return(*(int*)b-*(int*)a);
}
int solution(int A[], size_t A_len, int B[], size_t B_len) {
int i, answer=0;
qsort((int *)A, A_len, sizeof(int), com_up);
qsort((int *)B, B_len, sizeof(int), com_down);
for(i=0;i<A_len;i++) {
answer+=A[i]*B[i];
}
return answer;
}
*/
/* 버려진 나의 괄호 회전하기 코드...
for(i=0;s[i]!=0;i++) {
if(len%2!=0) {
answer=0;
return answer;
}
if((s[i]=='('&&s[i+1]==')')||(s[i]=='['&&s[i+1]==']')||(s[i]=='{'&&s[i+1]=='}')) answer=len/2;
if(s[i]=='('||s[i]=='['||s[i]=='{') push(s[i]);
else if(s[i]==')') {
if(s[i-1]=='(') pop();
else {
answer=0;
return answer;
}
}
else if(s[i]==']') {
if(s[i-1]=='[') pop();
else if(s[i-1]=='')
else {
answer=0;
return answer;
}
}
else if(s[i]=='}') {
if(s[i-1]=='{') pop();
else {
answer=0;
return answer;
}
}
}
*/
/*
#include <stdio.h>
#include <malloc.h>
#include <string.h>
#define SIZE 1001
char stack[SIZE];
int top=-1;
void push(char data)
{
if(top==SIZE-1) return;
stack[++top]=data;
}
char pop()
{
if(top==-1) return 0;
return stack[top--];
}
int isright(char* s)
{
printf("%s\n", s);
int i, cnt=0;
for(i=0;s[i]!=0;i++){
if(s[i]=='('||s[i]=='['||s[i]=='{') push(s[i]);
else if(s[i]==')') {
if(s[i-1]=='(') {
pop();
cnt++;
}
}
else if(s[i]==']') {
if(s[i-1]=='[') {
pop();
cnt++;
}
}
else if(s[i]=='}') {
if(s[i-1]=='{') {
pop();
cnt++;
}
}
}
return cnt;
}
int solution(const char* s) {
int i, len=0, answer=0, a=0, b=0, c=0, d=0, e=0, f=0;
len=strlen(s);
char* strc=(char*)malloc(sizeof(char)*len*2);
strcpy(strc, s);
for(i=0;s[i]!=0;i++) {
if(s[i]=='(') a++;
else if(s[i]==')') b++;
else if(s[i]=='[') c++;
else if(s[i]==']') d++;
else if(s[i]=='{') e++;
else if(s[i]=='}') f++;
}
if(a!=b||c!=d||e!=f||len%2!=0) return 0;
for(i=0;s[i]!=0;i++) {
answer=isright(strc+i);
strc[len+i]=strc[i];
strc[len+i+1]=0;
}
return answer;
}
*/
/*
#include <stdio.h>
#include <malloc.h>
#include <string.h>
#define SIZE 1001
char stack[SIZE];
int top=-1;
void push(char data)
{
if(top==SIZE-1) return;
stack[++top]=data;
}
char pop()
{
if(top==-1) return 0;
return stack[top--];
}
int isright(char* s)
{
int i, cnt=0;
top=-1;
for(i=0;s[i]!=0;i++){
if(s[i]=='('||s[i]=='['||s[i]=='{') push(s[i]);
else if(s[i]==')') {
if(top==-1||stack[top]!='(') return 0;
else pop();
}
else if(s[i]==']') {
if(top==-1||stack[top]!='[') return 0;
else pop();
}
else if(s[i]=='}') {
if(top==-1||stack[top]!='{') return 0;
else pop();
}
}
if(top==-1) return 1;
else return 0;
}
int solution(const char* s) {
int i, len=0, answer=0, a=0, b=0, c=0, d=0, e=0, f=0;
len=strlen(s);
char* strc=(char*)malloc(sizeof(char)*len*2);
strcpy(strc, s);
for(i=0;s[i]!=0;i++) {
printf("%s %d\n",strc+i,isright(strc+i));
if(isright(strc+i)==1) answer++;
strc[len+i]=strc[i];
strc[len+i+1]=0;
}
return answer;
}
*/