'ACM'에 해당되는 글 10건

  1. 2010.07.13 C- ACM - 휴대폰번호 정렬
  2. 2010.07.07 C- ACM - 대지
  3. 2010.07.02 C- ACM - 양말 짝 맞추기
  4. 2010.07.02 C- ACM - 다운로드
  5. 2010.06.23 C- ACM - 지뢰찾기 (4)
  6. 2010.06.12 C- ACM - 수 뒤집기
  7. 2010.06.09 C- ACM - 소수판정
  8. 2010.06.08 C- ACM - 문자열
  9. 2010.06.08 C- ACM - Coin
  10. 2010.06.07 C- ACM - 더하기
엑셀을 만들라는 문제..드뎌 온갖 야매란 야매는 다 써서 풀었답니다~ ㅋㅋㅋ
D. 휴대폰번호 정렬
(Time Limit: 2 seconds)
LK 텔레콤에 근무하는 신입사원 정희에게 부장님이 새로운 업무를 지시했다. 고객들의 휴대폰 전화번호를 정렬하는 작업이다.
휴대폰 번호는 국번 3 자리와 중간국번 3자리 또는 4자리, 그리고 뒷 자리 수 4 자리로 총 10 개 혹은 11 개의 숫자로 이루어진다.
그리고 휴대폰 국번은 010, 011, 016, 017, 018, 019 의 여섯 가지가 존재한다. 국번과 중간국번, 뒷자리 수는 하이픈(“-”)으로 구분된다. 부장님이 원하는 요구사항은 다음과 같다. 우선, 특정 국번 번호 순서로 정렬이 되어야 하며, 국번이 같은 경우에는 중간국번 숫자끼리 비교해서 오름차순 정렬이 되어야 하며, 중간국번도 같은 경우에는 뒷자리 번호를 비교해서 오름차순으로 정렬이 되야 한다. 단, 부장님이 원하는 정렬순서는 국번이 같을 경우 중간국번 4 자리인 휴대폰 번호가 중간국번 3 자리인 휴대폰 번호보다 항상 정렬 우선순위가 높다. 즉, 국번이 같은 경우 중간국번 4 자리인 휴대폰 번호가 중간국번 3자리인 휴대폰 번호보다 정렬 시 항상 먼저 등장한다. 예를 들어, 다음과 같은 휴대폰 번호를 정렬한다고 하자.

011-275-3587
017-1111-2600
019-222-2222
017-111-1234
018-275-9562
010-333-1111
016-1235-3333
이 번호들을 017 / 011 / 018 / 019 / 010 / 016 국번 순으로, 그리고 중간국번 4 자리가 중간국번 3자리보다 우선순위가 높도록 정렬을 한다면, 아래와 같이 정렬이 될 것이다.
017-1111-2600
017-111-1234
011-275-3587
018-275-9562
019-222-2222
010-333-1111
016-1235-3333
위의 결과에서 첫 번째 라인의 017-1111-2600 과 두 번째 라인의 017-111-1234 를 비교해보면, 중간국번 111 은 1111 보다 작으므로 일반적으로는 정렬 시 017-111-2600 이 먼저 등장해야 하나, 부장님의 요구사항에서 중간국번 4 자리가 중간국번 3 자리보다 항상 정렬 우선순위가 높다는 규칙 때문에 017-1111-2600 이 017-111-1234 보다 먼저 등장한 것을 알 수 있다.
Input
첫 줄에는 테스트 케이스의 개수 T ( 0 < T <= 20 ) 가 주어진다.각각의 테스트케이스의 첫 번째 줄에는 정렬할 휴대폰 번호의 개수 N(0 < N <= 50) 이 주어진다.테스트케이스의 두 번째 줄에는 0, 1, 6, 7, 8, 9 의 6개의 숫자가 임의의 순서로 표시된다.이 숫자들은 휴대폰 국번을 의미하며, 6개의 숫자들이 나열되는 순서는 테스트 케이스마다 바뀔수 있다. 당신은 이 순서대로 국번 별 순서로 휴대폰번호를 정렬해야 한다.예를 들어, 숫자 7 1 8 9 0 6 이 표시됐다면 017 / 011 / 018 / 019 / 010 / 016 국번 순으로 정렬해야 한다. 세 번째 줄부터는 라인 당 하나씩의 휴대폰 번호가 N 개 만큼 입력된다. 휴대폰 번호에서 국번은
010, 011, 016, 017, 018, 019 의 여섯 가지만 입력되며, 휴대폰 번호는 0 부터 9 까지의 숫자와 “–“ 로 구성되며, 빈칸을 포함하지 않으며 그 외 다른 문자는 포함되지 않는다. 참고로, 우리나라 휴대폰 번호에서 010 국번의 경우 중간국번은 항상 4 자리지만 이 문제에서는 010 국번도 중간 국번이 3 자리가 될 수 있다고 정의한다. 즉, 모든 휴대폰번호는 국번에 상관없이 중간국번이 세자리 혹은 네 자리가 될 수 있다.
#include 
#include 		// atoi
#include 		// abs

#define SWAP(x,y,t) (t=x), (x=y), (y=t)		//스왑정의

typedef struct phone_num
{
	unsigned int fst_num;	//사업자번호 (010등)
	unsigned int snd_num;	//나머지번호
}num;

int main(void)
{
	num list[50];			//스트럭쳐 50개
	num list_temp;			//스왑에 사용할 스트럭쳐 한개 
	char in_txt[14];		//문자열 배열
	int N, repeat, temp;	//번호갯수, 테스트케이스, 스왑용변수
	int st_num[6];			//사업자번호 끝자리 정렬용

	scanf("%d",&repeat);
	
	for(int z=0; z[repeat; z++)
	{
	scanf("%d",&N);		
	scanf("%d %d %d %d %d %d ",&st_num[0], &st_num[1], &st_num[2], &st_num[3], &st_num[4], &st_num[5]);
	
	for(int i=0; i[N; i++)
	{
		gets(in_txt);

		list[i].fst_num=atoi(in_txt+2);		//사업자번호 끝자리만 숫자로 변경하여 구조체에 넣음 
		list[i].snd_num=atoi(in_txt+4)*10000+abs(atoi(in_txt+8));	// 중간자리를 받아 10000을 곱함 + 끝자리를 받아 중간자리에 더함
	}

	for(int i=0; i[N; i++)	// 삽입정렬
	{
		if(list[i].snd_num>list[i-1].snd_num){temp=list[i].snd_num;}else{continue;}
		
		for(int j=0; j[N; j++)
		{
			if(list[j].snd_num[temp){SWAP(list[i], list[j], list_temp);}
		}
	}
	printf("------------------\n");

	for(int j=0; j[6; j++)	//정렬된 수를 사업자 번호의 순서에 맞게 출력
	{
		for(int i=0; i[N; i++)
		{
			if(st_num[j]==list[i].fst_num){printf("01%d-%d-%d\n", list[i].fst_num, list[i].snd_num/10000, list[i].snd_num%10000);}
		}
	}
	printf("------------------\n");
	}

	return 0;
}
 
저작자 표시
신고
Creative Commons License
Creative Commons License

'3_ 담백한알고리즘' 카테고리의 다른 글

알고리즘 사이트 모음  (0) 2011.09.19
Algorithm - Counting Sort  (1) 2011.03.30
C- ACM - 휴대폰번호 정렬  (0) 2010.07.13
C- ACM - 대지  (0) 2010.07.07
C- ACM - 양말 짝 맞추기  (0) 2010.07.02
C- ACM - 다운로드  (0) 2010.07.02
Posted by 준환이형님

댓글을 달아 주세요

예전에 우리 벽보를 함부로 덮은 타동아리 포스터 면적을 계산해서 따지러가는 문제가 있었는데 그거랑 유사하네요. 스토리도 은근탄탄 ㅋ


 임씨는 1950년 한국전쟁으로 많은 손해를 본 사람들 중 하나다. 전쟁 통에 손해보지 않은 사람이 어디 있을까 만은 그는 6.25가 일어나기 전만 해도 충청도 지방에 넓은 대지를 소유한 큰 부자였다. 전쟁이 나자 임씨는 땅문서와 값 나가는 것들만 챙겨서 일본으로 피난을 가지만 피난 중에 그만 땅문서를 잃어버리고 만다. 전쟁이 끝난 후에 임씨의 땅은 이미 다른 사람들의 논밭이 되어 있었고, 임씨는 땅을 되찾으려 했지만 문서가 없으니 생떼 쓰는 것과 다를 바 없었다. 이러다가 임씨는 길바닥에 나앉게 생겼다.
이 때, 임씨에게 좋은 생각이 떠올랐으니 바로 자신이 습관처럼 땅 깊숙이 뭔가 표식을 해놓았던 사실이다. 임씨는 한적할 때마다 자신의 논밭을 거닐다가 땅속 깊은 곳에 자신의 이름이 씌어진 옥구슬을 묻어놓았던 것이다. 즉, 어떤 지점에서 그의 이름이 적힌 옥구슬이 나온다면 그 지점은 예전에 임씨의 땅이었다는 것을 증명하는 것이다.
  임씨는 즉시 민사소송을 통해 자신의 땅을 찾고자 했고 논리적인 근거를 들어 옥구슬이 나오는 지점이 원래 자신의 땅의 한 지점이었다는 것을 주장하여 결국 담당판사를 설득하는 데에 성공하였다. 담당판사는 다음과 같은 판결을 내렸다. "6.25이전의 개인소유 대지들은 99%가 남북, 동서 방향으로 평행한 직사각형 모양이었으므로, 임씨의 이름이 새겨진 옥구슬이 나오는 모든 지점을 포함하는 가장 작은 남북, 동서 방향으로 평행한 변을 갖는 직사각형의 대지를 임씨의 소유로 인정한다." 임씨는 많은 손해를 보는 셈이지만 더 이상을 요구할 만한 근거가 없었기 때문에 이 판결을 따르기로 했다.

  임씨의 이름이 새겨진 옥구슬의 위치 N 개가 주어질 때에, 임씨에게 돌아갈 대지의 넓이를 계산하는 프로그램을 작성하시오. 단, 옥구슬의 위치는 2차원 정수 좌표로 주어지고 옥구슬은 같은 위치에 여러 개가 발견될 수도 있으며, x축의 양의방향을 동쪽, y축의 양의방향을 북쪽이라고 가정한다. 
 

   예를 들어 위와 같이 (2, 1), (3, 2), (5, 2), (3, 4) 네 점에서 옥구슬을 발견하였다면, 임씨에게 돌아갈 대지는 (2, 1), (5, 1), (2, 4), (5, 4)를 네 꼭지점으로 하는 직사각형이며, 넓이는 (5 - 2) × (4 - 1) = 9가 된다.
 
입력
입력은 표준입력(standard input)을 통해 받아들인다. 입력의 첫 줄에는 테스트 케이스의 개수 T (1 ≤ T ≤ 20)가 주어진다. 각 테스트 케이스의 첫째 줄에는 점의 개수 N (1 ≤ N ≤ 100,000) 이 주어진다. 이어지는 N 줄에는 각 점의 좌표가 두 개의 정수로 한 줄에 하나씩 주어진다. 각각의 좌표는 -10,000 이상 10,000 이하의 정수이다.

출력
출력은 표준출력(standard output)을 통하여 출력한다. 각 테스트 케이스에 대해서 N 개의 점을 둘러싸는 최소 크기의 직사각형의 넓이를 출력하시오.

#include 
#include 

int main(void)
{
	int num,x,y,dir_N,dir_E,dir_W,dir_S;
	
	dir_N=dir_E=-10000;		//디폴트
	dir_W=dir_S=+10000;

	scanf("%d",&num);

	for(int i=0; i[num; i++)
	{		
		scanf("%d %d",&x,&y);

		if(y]dir_N){dir_N=y;}
		if(y[dir_S){dir_S=y;}
		if(x]dir_E){dir_E=x;}
		if(x[dir_W){dir_W=x;}
	}
	printf("%d\n",abs(dir_E-dir_W)*abs(dir_N-dir_S));
	return 0;
} 
저작자 표시
신고
Creative Commons License
Creative Commons License

'3_ 담백한알고리즘' 카테고리의 다른 글

Algorithm - Counting Sort  (1) 2011.03.30
C- ACM - 휴대폰번호 정렬  (0) 2010.07.13
C- ACM - 대지  (0) 2010.07.07
C- ACM - 양말 짝 맞추기  (0) 2010.07.02
C- ACM - 다운로드  (0) 2010.07.02
C- ACM - 지뢰찾기  (4) 2010.06.23
Posted by 준환이형님

댓글을 달아 주세요

양말 짝을 맞추는 문제입니다. 저는 젓가락 행진곡 처럼 양 끝에서 가운데로 한짝씩 맞춰나가는 문제라고 이해하고 풀었어요~/ 

양말 장사를 하는 지훈이는 오랜만에 창고 정리를 하기로 했다. 창고에는 양말짝이 맞지 않은 채 가득 섞여 있었다. 이제 지훈이를 도와 어지럽게 섞여있는 양말의 짝을 맞추어 보자.
- 양말의 종류는 알파벳으로 구분된다.
- 양말의 오른짝은 소문자, 왼짝은 대문자이다.
  즉, Jj가 J 양말의 한 쌍이며, aB는 a양말의 오른짝과 B양말의 왼짝이므로 짝이 맞지 않는다. 
입력의 첫 번째 줄은 테스트 케이스의 개수 T ( 0 < T <= 30)가 주어지며, 각 테스트 케이스는 한 줄에 하나씩 창고에 있는 양말이 종류와 짝에 상관없이 연속으로 입력된다. 최대 입력되는 양말의 개수는 100개이며, 테스트 케이스에는 알파벳 대소문자만이 입력된다.  하나의 테스트 케이스마다 한 줄씩 출력하며, 주어진 양말의 모든 짝이 맞는다면 ‘YES’를 출력하며, 양말의 짝이 맞지 않는 경우는 ‘NO’를 출력한다. 

aaAA ->YES
CAdBb ->NO
Bab ->NO

#include <stdio.h>
#include <math.h>
int CASE()
{
 int tail=30; 
 char sox[30];
 gets(sox);
 while(sox[tail--]);              // 끝에서부터 NULL값을 찾음
 if(tail%2==0){return 0;}    // 양말 홀수개의 입력이면 리턴 0을 반환함
 for(int i=0; i[tail; i++)
 {  
  if(abs(sox[i]-sox[tail])==32){tail--; continue;}  // 짝이 일치할때 회문을 도는 형식
  else return 0;                                                 // 한번이라도 일치하지 않으면 리턴 0을 반환함
 }
 return 1;
}
int main(void)
{
 int repeat;
 scanf("%d",&repeat);
 fflush(stdin);              // 스캔에서의 엔터값 버퍼를 비움
 for(int i=1; i[=repeat; i++)
 {
  if(CASE())printf("Case #%d:\nYES\n",i);
  else{printf("Case #%d:\nNo\n",i);}
 }
 return 0;
}  
저작자 표시
신고
Creative Commons License
Creative Commons License

'3_ 담백한알고리즘' 카테고리의 다른 글

C- ACM - 휴대폰번호 정렬  (0) 2010.07.13
C- ACM - 대지  (0) 2010.07.07
C- ACM - 양말 짝 맞추기  (0) 2010.07.02
C- ACM - 다운로드  (0) 2010.07.02
C- ACM - 지뢰찾기  (4) 2010.06.23
C- ACM - 수 뒤집기  (0) 2010.06.12
Posted by 준환이형님

댓글을 달아 주세요

ㅋㅋㅋ 이런 문제 좋음~
정희는 한 음악 포털 사이트에서 일정 금액을 충전하여 mp3파일을 다운로드 받아서 사용해 왔다.
지금 이 사이트에서 k곡을 다운받으면 한 곡을 무료로 다운받을 수 있는 이벤트를 진행 중이고, 현재 정희가 다운받을 수 있는 mp3파일의 개수는 n개이다. 이벤트 기간 중 정희가 다운받을 수 있는 총 mp3파일의 개수는 몇 개인가?
첫 줄에는 테스트 케이스의 개수 T ( 0 < T <= 100000 ) 가 주어진다.
한 줄당 하나의 입력이 입력되며, 각 입력 케이스는 n과 k 두 개의 정수로 이루어져 있고, 하나의 스페이스로 구분된다. ( 0 < n < 1000000, 1 < k <= 21)
각 테스트 케이스에 대해 각 케이스마다 정희가 다운받을 수 있는 총 mp3파일의 개수를 출력한다.
4 3   ->5
10 3  ->14
100 5 -> 124
#include 

int main(void)
{
	int n ,k, plus;
	scanf("%d %d",&n, &k);
	
	plus=n/k;
	plus+=plus/k;
	
	printf("%d %d -> %d\n",n,k,plus+n);

	return 0;
} 
저작자 표시
신고
Creative Commons License
Creative Commons License

'3_ 담백한알고리즘' 카테고리의 다른 글

C- ACM - 대지  (0) 2010.07.07
C- ACM - 양말 짝 맞추기  (0) 2010.07.02
C- ACM - 다운로드  (0) 2010.07.02
C- ACM - 지뢰찾기  (4) 2010.06.23
C- ACM - 수 뒤집기  (0) 2010.06.12
C- ACM - 소수판정  (0) 2010.06.09
Posted by 준환이형님

댓글을 달아 주세요

 

지뢰찾기 게임을 구현합니다~ 지뢰위치는 '*'로 나타내고 그렇지 않다면 주변 8 방향의 지뢰매설 개수를 표시합니다.
저는 배열이 좋은데.. 이번에는 동적으로 구현 해 보았어요. 이렇게 하면 평당 얼마의 메모리 비용으로 저렴하게 지뢰밭을 만들 수 있겠죠~ㅋ
내용은 for문에 따라 [동적배열생성]->[지뢰생성]->[표시]->[메모리해제] 순서입니다. 지뢰 찾으러 갑시당~♪

 
#include 
#include 
#include 
#include 

int main(void)
{
	srand((unsigned int)time(NULL));	//랜덤seed설정
	int N,M,counter;
	int **mine_farm;

	scanf("%d %d", &N, &M);

	N+=2;M+=2; // 마스크로 인해 끝부분이 두칸씩 잘리게 되므로 처음부터 두칸 넓게 잡음

	mine_farm=(int**)malloc(N*sizeof(int)); // 동적배열(행)

	for(int i=0; i<N; i++)
	{
		*(mine_farm+i)=(int*)malloc(sizeof(int)*M); // 동적배력(열)
	}

	for(int i=0; i<N; i++)
	{
		for(int j=0; j<M; j++)
		{			
			if(i==0 || j==0 || i==N-1 || j==M-1){continue;}	//마스크는 패스
			if(rand()%4){mine_farm[i][j]=NULL;}else mine_farm[i][j]=1;	// 1/4확률의 지뢰생성	
		}
	}

	for(int i=0; i<N; i++)
	{
		for(int j=0; j<M; j++)
		{
			if(i==0 || j==0 || i==N-1 || j==M-1){continue;}
			if(mine_farm[i][j]==1){printf("* ");continue;}	// 지뢰를 "*"표시

			counter=NULL;

			for(int l=-1; l<2; l++)
			{
				for(int m=-1; m<2; m++)
				{
					if(mine_farm[i+l][j+m]==1){counter++;}	//마스크내의 *은 카운터를 셈
				}
			}
			if(i==0 || j==0 || i==N-1 || j==M-1){continue;}
			printf("%d ",counter);	// 나머지는 숫자표현
		}
		printf("\n");
	}

	for(int i=0; i<N; i++)
	{
		free(mine_farm[i]);	// 메모리해제
	}
	free(mine_farm);

	return 0;
}

저작자 표시
신고
Creative Commons License
Creative Commons License

'3_ 담백한알고리즘' 카테고리의 다른 글

C- ACM - 양말 짝 맞추기  (0) 2010.07.02
C- ACM - 다운로드  (0) 2010.07.02
C- ACM - 지뢰찾기  (4) 2010.06.23
C- ACM - 수 뒤집기  (0) 2010.06.12
C- ACM - 소수판정  (0) 2010.06.09
C- ACM - 문자열  (0) 2010.06.08
Posted by 준환이형님

댓글을 달아 주세요

  1. bjpark 2010.06.23 21:14 신고 Address Modify/Delete Reply

    헐 엄청나네요..ㅋㅋㅋ

  2. h0ney 2010.06.24 18:01 신고 Address Modify/Delete Reply

    4분의 1확률로 지뢰를 생성하는군 ㅋㅋ

    원래라면 정해진 지뢰의 갯수에 따라서 생성하잖냐

    아무리봐도 지뢰찾기 알고리즘은 정말 재밌는듯

  3. 반기문사무총장 2010.06.24 22:42 신고 Address Modify/Delete Reply

    ㅋㅋㅋ 포문이 장난 아니네요.ㅋㅋㅋ

  4. Denial 2010.06.25 00:40 신고 Address Modify/Delete Reply

    여기 비무장지대 있네요 ㅋㅋ


언뜻 배열을 생각 할 수도 있으나 10진수 쉬프트의 개념으로 접근한다면 깔끔하게 풀수 있다는 조언을 받았죠.
즉, 변수 하나를 만들어서 
1234  -> NULL
123   ->       4
12    ->      43
1     ->     432
이런식으로 원본(좌측)수는 나머지를 구한뒤 10씩 나누고 사본(우측) 은 원본의 나머지를 가져온뒤 10씩 곱해가는 과정입니다. 아 신기하당~ㅋㅋ

  
#include 

int swapnum(int num_temp)		//뒤집은 수를 만드는 함수
{
	int num_next=NULL;			// 1. 빈 변수를 하나 만든뒤

	while(num_temp>0)			// 2. 원본의 수가 한자리가 될때까지 반복
	{
		num_next*=10;			// 3. 사본에 10씩 곱해서 앞으로 채워 넣습니다
		num_next+=num_temp%10;	// 4. 원본의 끝자리를 사본에게 보냅니다
		num_temp/=10;			// 5. 원본을 10씩 나누어서 다음수가 오게 합니다
	}
	return num_next;			// 6. 뒤집힌 수 출력
}

int main(void)
{
	int repeat=NULL;	
	int num1, num2;
	num1=num2=NULL;

	scanf("%d", &repeat);	// 입력반복 횟수

                for(int i=0; i< repeat; i++)
               {
		scanf("%d", &num1);
		num2=swapnum(num1)+num1;	//원본과 뒤집힌 수를 더합니다

		if(swapnum(num2)==num2){printf("YES\n");}else printf("NO\n");	//두번째 원본과 뒤집힌수의 비교

		num1=num2=NULL;	// 다음 씬을 위한 초기화
	}
	return 0;
}
저작자 표시
신고
Creative Commons License
Creative Commons License

'3_ 담백한알고리즘' 카테고리의 다른 글

C- ACM - 다운로드  (0) 2010.07.02
C- ACM - 지뢰찾기  (4) 2010.06.23
C- ACM - 수 뒤집기  (0) 2010.06.12
C- ACM - 소수판정  (0) 2010.06.09
C- ACM - 문자열  (0) 2010.06.08
C- ACM - Coin  (0) 2010.06.08
Posted by 준환이형님

댓글을 달아 주세요

반복문
{

flag = 0 or 1;

result= result * falg;

 }

보다 깔끔한.. 함수사용의 효율성을 배울 수 있었던 문제. 


함수
{
 {
  if(...){return 0;}
 }
 return 1;
}  

"아빠가 한번 안된다고 하면 안되는거야!"라는 의미ㅎ

1 보다 큰 정수 P 가 1 과 P 자신 이외의 양의 약수를 가지지 않을 때의 P 를 소수라고 부른다. 이를테면, 2, 3,
5, 7, 11, 13, 17, 19, 23, 29, 31 등은 모두 소수이다. 4, 6, 16 등과 같이 소수가 아니면서 2 이상인 자연수를
합성수라고 정의하며, 1 은 소수도 아니고 합성수도 아닌 수이다.
주어진 자연수 N 이 소수인지 아닌지를 판정하라.
입력
표준 입력(standard input)을 통하여 입력한다. 입력은 T 개의 테스트 케이스로 이루어진다. 테스트 케이스의
수 T 는 입력 파일의 첫 행에 주어진다. 각각의 테스트 케이스는 한 줄로 이루어져 있으며, 소수인지 판정할
자연수 N 이 주어진다. T 는 1 ≤ T ≤ 10 의 범위를 갖고, N 은 1 ≤ N ≤ 100,000,000 사이의 범위를
가진다.
출력
표준 출력(standard output)을 통하여 출력한다. 각각의 테스트 케이스에 대해서 정확한 한 줄의 결과를
출력한다. 각 결과는 소수인지 소수가 아닌지를 말해주는 “ YES” 또는 “ NO” 이어야 한다. N이 소수인
경우에는 “ YES” 를 출력하고 N이 소수가 아닌 경우에는 “ NO” 를 출력한다. T개의 테스트 케이스가
주어지기 때문에, 작성된 프로그램은 전부 T개의 “ YES” 또는 “ NO” 를 출력하여야 한다. 단, 실행 시간은
5초로 제한한다.

저작자 표시
신고
Creative Commons License
Creative Commons License

'3_ 담백한알고리즘' 카테고리의 다른 글

C- ACM - 지뢰찾기  (4) 2010.06.23
C- ACM - 수 뒤집기  (0) 2010.06.12
C- ACM - 소수판정  (0) 2010.06.09
C- ACM - 문자열  (0) 2010.06.08
C- ACM - Coin  (0) 2010.06.08
C- ACM - 더하기  (0) 2010.06.07
Posted by 준환이형님

댓글을 달아 주세요

 도도도 도시라~  글자를 찾는 모습이 마치., 젓가락 행진곡 같지 않나요? ㅋㅋㅋ
(도도도 도레미~)


#include <stdio.h>
#include <conio.h>

int main (void)
{
 char input_char[1000];
 int i_temp=NULL;
 int repeat=NULL;

 scanf("%d",&repeat);

 if(repeat<1 || repeat>10){printf("Only input range '1-10'\n");return 0;}

 for(int k=0; k<repeat; k++)
 {
  scanf("%s",&input_char);

  for(int i=0; i<1000; i++)
  {
   if(input_char[i]==NULL)
   {
    i_temp=i;
    break;
   }
  }
  for(int j=0; j<i_temp; j++)
  {
   if(input_char[j]>='A' && input_char[j]<='Z'){continue;}
   else{printf("Only input 'A-Z' NOT '%c'! \n",input_char[j]);return 0;}
  }
  printf("%c%c\n",input_char[0],input_char[i_temp-1]);
 }
 return 0;
}

저작자 표시
신고
Creative Commons License
Creative Commons License

'3_ 담백한알고리즘' 카테고리의 다른 글

C- ACM - 지뢰찾기  (4) 2010.06.23
C- ACM - 수 뒤집기  (0) 2010.06.12
C- ACM - 소수판정  (0) 2010.06.09
C- ACM - 문자열  (0) 2010.06.08
C- ACM - Coin  (0) 2010.06.08
C- ACM - 더하기  (0) 2010.06.07
Posted by 준환이형님

댓글을 달아 주세요

으음.. 막상 이해하고 나면 /이게 뭐야/ 할지도 ㅋㅋ

In Korea, there are four kinds of coins – a 10-won coin, a 50-won coin, 100-won coin and a 500-won coin.
Given K 10-won coins, L 50-won coins, M 100-won coins and N 500-won coins, you are to write a program that calculate the total amount.
Input
The input consists of T test cases. The number of test cases T is given in the first line of the input file. Each test case will consist of four integers K, L, M and N (0<K, L, M, N>100). The integers given in a line are separated by a space.
Output
Print exactly one line for each test case. For each test case of K, L, M and N you should output the total amount.
The following shows sample input and output for three test cases.
Sample Input
Output for the Sample Input
3
1 1 1 1
answer : 660
0 1 2 3
answer : 1750
1 2 10 20
answer : 11110

#include <stdio.h>
int main(void)
{
 int repeat=NULL;
 int K,L,M,N; 
 scanf("%d",&repeat);
 for(int i=0; i<repeat; i++)
 {
  scanf("%d %d %d %d",&K, &L, &M, &N);
  printf("%d\n",K*10+L*50+M*100+N*500);
 }
 return 0;
}

저작자 표시
신고
Creative Commons License
Creative Commons License

'3_ 담백한알고리즘' 카테고리의 다른 글

C- ACM - 지뢰찾기  (4) 2010.06.23
C- ACM - 수 뒤집기  (0) 2010.06.12
C- ACM - 소수판정  (0) 2010.06.09
C- ACM - 문자열  (0) 2010.06.08
C- ACM - Coin  (0) 2010.06.08
C- ACM - 더하기  (0) 2010.06.07
Posted by 준환이형님

댓글을 달아 주세요

 대학생 경시대회의 기초 알고리즘 문제를 풀어봅시다. 이 코너는 부산-경남지역 알고리즘의 마스터 사로자바님과 함께 합니다 :D


#include <stdio.h>

int main(void)
{
 int set, num, repeat;
 int sum=NULL;

 scanf("%d", &repeat);

 for(int i=0; i<repeat; i++)
 {
  scanf("%d",&set);

  for(int i=0; i<set; i++)
  {
   scanf("%d",&num);
   sum+=num;
  }
  printf("%d\n",sum);
  sum=NULL;
 }
 return 0;
}

저작자 표시
신고
Creative Commons License
Creative Commons License

'3_ 담백한알고리즘' 카테고리의 다른 글

C- ACM - 지뢰찾기  (4) 2010.06.23
C- ACM - 수 뒤집기  (0) 2010.06.12
C- ACM - 소수판정  (0) 2010.06.09
C- ACM - 문자열  (0) 2010.06.08
C- ACM - Coin  (0) 2010.06.08
C- ACM - 더하기  (0) 2010.06.07
Posted by 준환이형님

댓글을 달아 주세요

티스토리 툴바