문제

예제를 보고 규칙을 유추한 뒤에 별을 찍어 보세요.

입력

첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다.

출력

첫째 줄부터 N번째 줄까지 차례대로 별을 출력한다.

예제 입력 1

1

예제 출력 1

*

예제 입력 2

2

예제 출력 2

 *
***

예제 입력 3

3

예제 출력 3

  *
 * *
*****

예제 입력 4

4

예제 출력 4

   *
  * *
 *   *
*******

더보기

Solution

#include<stdio.h>

int main(void)
{
	int N;

	scanf("%d", &N);

	for(int i=1;i<N;i++)
	{
		for(int j=0;i+j<N;j++)
			printf(" ");
		printf("*");
		if(i>1)
		{
			printf(" ");
			for(int j=2;j<i;j++)
				printf("  ");
			printf("*");
		}
		printf("\n");
	}
	printf("*");
	for(int i=1;i<N;i++)
		printf("**");
	printf("\n");

	return 0;
}
728x90

문제

예제를 보고 규칙을 유추한 뒤에 별을 찍어 보세요.

입력

첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다.

출력

첫째 줄부터 N번째 줄까지 차례대로 별을 출력한다.

예제 입력 1

1

예제 출력 1

*

예제 입력 2

2

예제 출력 2

 *
* *

예제 입력 3

3

예제 출력 3

  *
 * *
*   *

예제 입력 4

4

예제 출력 4

   *
  * *
 *   *
*     *

더보기

Solution

#include<stdio.h>

int main(void)
{
	int N;

	scanf("%d", &N);

	for(int i=1;i<=N;i++)
	{
		for(int j=0;i+j<N;j++)
			printf(" ");
		printf("*");
		if(i>1)
		{
			printf(" ");
			for(int j=2;j<i;j++)
				printf("  ");
			printf("*");
		}
		printf("\n");
	}

	return 0;
}
728x90

문제

지금까지 안 나온 별 찍기가 뭐가 있는지 생각해본 후, 별을 적절히 찍으세요.

입력

첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다.

출력

N개의 줄에 걸쳐 별을 적절히 찍는다.

예제 입력 1

1

예제 출력 1

*

더보기

Solution

#include<stdio.h>

int main(void)
{
	int N;

	scanf("%d", &N);

	for(int i=1;i<=N;i++)
	{
		for(int j=1;j<=N;j++)
			printf("*");
		printf("\n");
	}

	return 0;
}
728x90

문제

아주 멀리 떨어져 있는 작은 나라가 있다. 이 나라에서 가장 공부를 잘하는 학생들은 모두 다른 나라로 유학을 간다. 정부는 최고의 학생들이 자꾸 유학을 가는 이유를 찾으려고 했다. 하지만, 학생들의 이유가 모두 달랐기 때문에 정확한 이유를 찾을 수 없었다. 정부의 고위직은 뛰어난 학생들이 자꾸 유학을 가는 현상을 매우 불쾌해 했다.

가장 많은 학생들이 유학을 가는 대학교는 영국의 캠브리지 대학교이다. 정부는 인터넷 검열을 통해서 해외로 나가는 이메일의 내용 중 일부를 삭제하기로 했다. 이메일의 각 단어 중에서 CAMBRIDGE에 포함된 알파벳은 모두 지우기로 했다. 즉, 어떤 이메일에 LOVA란 단어가 있다면, A는 CAMBRIDGE에 포함된 알파벳이기 때문에, 받아보는 사람은 LOV로 받는다.

이렇게, 어떤 단어가 주어졌을 때, 검열을 거친 후에는 어떤 단어가 되는지 구하는 프로그램을 작성하시오.

입력

첫째 줄에 알파벳 대문자로 이루어진 단어가 주어진다. 이 단어는 적어도 3글자이며, 많아야 100글자이다.

출력

입력으로 주어진 단어를 정부가 검열을 하면 어떻게 변하는지를 출력한다. 즉, 단어에서 CAMBRIDGE에 포함된 알파벳을 모두 지운 뒤 출력한다. 항상 정답의 길이는 0보다 크다.

예제 입력 1

LOVA

예제 출력 1

LOV

힌트

물론 이렇게 검열을 해도 뛰어난 학생은 다 빠져나간다.


더보기

Solution

#include<stdio.h>
#include<string.h>

int main(void)
{
	char word[101]={'\0', };

	scanf("%s", word);

	for(int i=0;i<strlen(word);i++)
		switch(word[i])
		{
			case 'C':
			case 'A':
			case 'M':
			case 'B':
			case 'R':
			case 'I':
			case 'D':
			case 'G':
			case 'E':
						break;
			default:
						printf("%c", word[i]);
						break;
		}
	printf("\n");

	return 0;
}
728x90

문제

계란집을 운영하는 남욱이는 매일 닭장에서 달걀을 수거해간다. 어느 날 닭장에 들어가보니 일부 닭의 다리가 하나씩 사라졌다. 남욱이는 얼마나 많은 닭들이 한 다리를 잃었는지 알고싶었지만 닭이 너무 많아 셀 수 없었고, 대신 모든 닭의 다리수를 셌다. 고민하는 남욱이를 위해 모든 닭의 다리수의 합과 닭의 수를 가지고 이것을 해결해주자.

입력

첫째 줄에 총 테스트 케이스의 수 T (T ≤ 25)가, 둘째 줄 부터 T + 1째줄까지 매줄 마다 모든 닭의 다리수의 합 N (1 ≤ N ≤ 300)과 닭의 수 M (M ≤ N ≤ 2M)이 공백을 간격으로 입력된다.

출력

테스트 케이스마다 한줄에 다리가 잘린 닭의 수 U와 멀쩡한 닭의 수 T를 공백을 간격으로 출력한다.

예제 입력 1

2
5 3
7 5

예제 출력 1

1 2
3 2

더보기

Solution

#include<stdio.h>

int main(void)
{
	int T;

	scanf("%d", &T);

	for(int t=0;t<T;t++)
	{
		int N, M;

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

		printf("%d %d\n", 2*M-N, N-M);
	}

	return 0;
}
728x90

문제

우리나라 고유의 윷놀이는 네 개의 윷짝을 던져서 배(0)와 등(1)이 나오는 숫자를 세어 도, 개, 걸, 윷, 모를 결정한다. 네 개 윷짝을 던져서 나온 각 윷짝의 배 혹은 등 정보가 주어질 때 도(배 한 개, 등 세 개), 개(배 두 개, 등 두 개), 걸(배 세 개, 등 한 개), 윷(배 네 개), 모(등 네 개) 중 어떤 것인지를 결정하는 프로그램을 작성하라.

입력

첫째 줄부터 셋째 줄까지 각 줄에 각각 한 번 던진 윷짝들의 상태를 나타내는 네 개의 정수(0 또는 1)가  빈칸을 사이에 두고 주어진다.

출력

첫째 줄부터 셋째 줄까지 한 줄에 하나씩 결과를  도는 A, 개는 B, 걸은 C, 윷은 D, 모는 E로 출력한다.

예제 입력 1

0 1 0 1
1 1 1 0
0 0 1 1

예제 출력 1

B
A
B

더보기

Solution

#include<stdio.h>

int main(void)
{
	for(int i=0;i<3;i++)
	{
		int sum=0;

		for(int j=0;j<4;j++)
		{
			int yut;

			scanf("%d", &yut);

			sum+=yut;
		}

		printf("%c\n", sum==4?'E':3-sum+'A');
	}

	return 0;
}
728x90

문제

1에서부터 6까지의 눈을 가진 3개의 주사위를 던져서 다음과 같은 규칙에 따라 상금을 받는 게임이 있다.

  1. 같은 눈이 3개가 나오면 10,000원+(같은 눈)*1,000원의 상금을 받게 된다. 
  2. 같은 눈이 2개만 나오는 경우에는 1,000원+(같은 눈)*100원의 상금을 받게 된다. 
  3. 모두 다른 눈이 나오는 경우에는 (그 중 가장 큰 눈)*100원의 상금을 받게 된다.  

예를 들어, 3개의 눈 3, 3, 6이 주어지면 상금은 1,000+3*100으로 계산되어 1,300원을 받게 된다. 또 3개의 눈이 2, 2, 2로 주어지면 10,000+2*1,000 으로 계산되어 12,000원을 받게 된다. 3개의 눈이 6, 2, 5로 주어지면 그 중 가장 큰 값이 6이므로 6*100으로 계산되어 600원을 상금으로 받게 된다.

N(2 ≤ N ≤ 1,000)명이 주사위 게임에 참여하였을 때, 가장 많은 상금을 받은 사람의 상금을 출력하는 프로그램을 작성하시오.

입력

첫째 줄에는 참여하는 사람 수 N이 주어지고 그 다음 줄부터 N개의 줄에 사람들이 주사위를 던진 3개의 눈이 빈칸을 사이에 두고 각각 주어진다. 

출력

첫째 줄에 가장 많은 상금을 받은 사람의 상금을 출력한다.

예제 입력 1

3
3 3 6
2 2 2
6 2 5

예제 출력 1

12000

더보기

Solution

#include<stdio.h>

int main(void)
{
	int N, max_price=0;

	scanf("%d", &N);

	for(int i=0;i<N;i++)
	{
		int dice[3], price;

		scanf("%d %d %d", &dice[0], &dice[1], &dice[2]);

		for(int j=0;j<2;j++)
			for(int k=j+1;k<3;k++)
				if(dice[j]>dice[k])
				{
					int temp=dice[j];
					dice[j]=dice[k];
					dice[k]=temp;
				}

		price=dice[0]==dice[2]?(10000+1000*dice[2]):dice[0]==dice[1]||dice[1]==dice[2]?(1000+100*dice[1]):100*dice[2];
		max_price=price>max_price?price:max_price;
	}

	printf("%d\n", max_price);

	return 0;
}
728x90

문제

준규가 가지고 있는 동전은 총 N종류이고, 각각의 동전을 매우 많이 가지고 있다.

동전을 적절히 사용해서 그 가치의 합을 K로 만들려고 한다. 이때 필요한 동전 개수의 최솟값을 구하는 프로그램을 작성하시오.

입력

첫째 줄에 N과 K가 주어진다. (1 ≤ N ≤ 10, 1 ≤ K ≤ 100,000,000)

둘째 줄부터 N개의 줄에 동전의 가치 Ai가 오름차순으로 주어진다. (1 ≤ Ai ≤ 1,000,000, A1 = 1, i ≥ 2인 경우에 Ai는 Ai-1의 배수)

출력

첫째 줄에 K원을 만드는데 필요한 동전 개수의 최솟값을 출력한다.

예제 입력 1

10 4200
1
5
10
50
100
500
1000
5000
10000
50000

예제 출력 1

6

예제 입력 2

10 4790
1
5
10
50
100
500
1000
5000
10000
50000

예제 출력 2

12

더보기

Solution

#include<stdio.h>
#include<stdlib.h>

int main(void)
{
	int N, K, count=0, *coin=NULL;

	scanf("%d %d", &N, &K);
	coin=(int *)malloc(N*sizeof(int));

	for(int i=N-1;i>=0;i--)
		scanf("%d", &coin[i]);

	for(int i=0;i<N;i++)
	{
		count+=K/coin[i];
		K%=coin[i];
	}

	printf("%d\n", count);

	free(coin);
	return 0;
}
728x90

+ Recent posts