조회 수 577 추천 수 0 댓글 0

#include <stdio.h>

int check[100000]={0}; //지연수=불가능 -1=위치
int height[100000]={0};
int num[100000]={0};
int answer[100000]={0};

void line_height(int n); //키가 작은 순서대로 정렬
void line_people(int n); //사람들의 순서
//int where_num(int n, int a); //그 사람의 위치
//void check_no(int n); //위치가 정해진 키는 더이상 다른 위치에 올수 없으므로 불가능
//void pr(int n);
int main(void)
{
	int n, i;

	//입력 시작
	scanf(" %d", &n); //전체 사람의 수

	for(i=0; i<n; i++)
	{
		scanf(" %d", &height[i]); //사람들의 키
	}
	for(i=0; i<n; i++)
	{
		scanf(" %d", &num[i]); //자가 앞에 있는 사람들 중에서 자기보다 키가 작거나 같은 사람들의 수
	}
	//입력 끝

	line_height(n); //키가 작은 순서대로 정렬
	line_people(n);

	//정답 출력
	for(i=0; i<n; i++)
	{
		printf("%d\n", answer[i]);
	}

	return 0;
}
void line_height(int n)
{
	int i, j, temp, min;

	for(i=0; i<(n-1); i++)
	{
		min=i;
		for(j=i+1; j<n; j++)
		{
			if(height[j]<height[min])
			{
				min=j;
			}
		}
		if(min!=i)
		{
			temp=height[i];
			height[i]=height[min];
			height[min]=temp;
		}
	}
}
void line_people(int n)
{
	int i, j, w, c, cnt=1;

	for(i=n-1; i>=0; i--)
	{
		if(i!=0)
		{
			c=0;
			for(j=0; c<num[i]; j++)
			{
				if(check[j]!=-1)
				{
					check[j]=cnt; //작은 순서대로 num[i]개 만큼 불가능
					c++;
				}
			}
			c=0;
			for(j=n-1; c<(i-num[i]); j--)
			{
				if(check[j]!=-1)
				{
					check[j]=cnt; //큰 순서대로 (i-num[i])개 만큼 불가능 
					c++;
				}
			}
		}

		for(j=0; j<n; j++)
		{
			if(check[j]!=cnt && check[j]!=-1) //불가능 하지 않은 위치 
			{
				w=j;
				answer[i]=height[w];
				check[w]=-1;
				break;
			}
		}

		//pr(n);
		//check_no(n);
		//pr(n);
		//printf("\n");
		cnt++;
	}
}
/*int where_num(int n, int a)
{
	int i;

	for(i=0; i<n; i++)
	{
		if(check[i]!=a && check[i]!=-1) 
			return i;
	}
}*/
/*void check_no(int n)
{
	int i;

	for(i=0; i<n; i++)
	{
		if(check[i]==1)
		{
			check[i]=0;
		}
	}
}*/
/*void pr(int n)
{
	int i;

	for(i=0; i<n; i++)
	{
		printf("%d ", check[i]);
	}
	printf("\n");
}*/
//뒤에서부터 배열
//만약 작은 수가 4개라면  작은 순대로 4개 제외, 큰 순서재로 전체-4개 제외 



List of Articles
번호 제목 글쓴이 날짜 조회 수
공지 글쓰기는 하루 5개, 댓글은 10개만 가능합니다. 좋은아빠되기 2019.02.15 744
공지 키보드 화살표값 출력 좋은아빠되기 2016.11.19 1502
공지 원하는 좌표에 값 출력하기 좋은아빠되기 2016.11.19 2847
공지 Python(파이썬) 학습 자료 PDF 1 file 좋은아빠되기 2014.12.10 11232
공지 dev C++ 텍스트 색상변경 WinApi사용(textcolor 대용) 좋은아빠되기 2014.06.07 5170
공지 DEV-C++ 기본 코드 좋은아빠되기 2013.06.19 8999
공지 무료 C++ 컴파일러(윈도우용) DEV-C++ 좋은아빠되기 2013.06.18 19440
공지 이클립스 C++ 설치 파일들 좋은아빠되기 2013.06.18 38322
270 정올 기초다지기(aB001-문자열1) killerjack 2014.09.20 493
269 정올 기초다지기(aA009-배열2 9) killerjack 2014.05.31 1336
268 정올 기초다지기(aA006-배열2 6) killerjack 2014.05.31 1230
267 정올 기초다지기(aA003-배열2 3) killerjack 2014.05.31 1447
266 정올 기초다지기(aA002-배열2 2) killerjack 2014.05.31 1300
265 정올 기초다지기(aA001-배열2 1) killerjack 2014.05.31 1465
264 정올 기초다지기 함수3 자가진단 5 남쌤꺼 좋은아빠되기 2014.08.16 510
263 정올 기초다지기 출력 자기진단7 정승준 2018.01.06 178
262 정올 기초다지기 출력 자가진단6 정승준 2018.01.06 194
261 정올 기초다지기 출력 자가진단2 정승준 2018.01.06 172
260 정올 기초다지기 (함수3-자가진단6) killerjack 2014.08.30 816
259 정올 기초다지기 (배열2-자가진단2) killerjack 2014.05.31 1659
258 정올 - 알고리즘 - 회의실 배정(1370) 조정미 2018.02.10 1015
257 정올 - 알고리즘 - 치즈(1840) 조정미 2018.05.05 722
256 정올 - 알고리즘 - 짚신벌레(1822) - 완 조정미 2018.03.03 994
255 정올 - 알고리즘 - 짚신벌레(1822) - 미완2 조정미 2018.03.03 190
254 정올 - 알고리즘 - 짚신벌레(1822) - 미완 조정미 2018.02.24 254
» 정올 - 알고리즘 - 줄세우기(2469) - Time Limit Exceed 조정미 2018.04.21 577
252 정올 - 알고리즘 - 줄세우기(1871) 조정미 2018.05.19 481
251 정올 - 알고리즘 - 요플레공장(2194) 조정미 2018.03.17 407
Board Pagination Prev 1 ... 8 9 10 11 12 13 14 15 16 17 ... 26 Next
/ 26