[문제 설명]

다음과 같은 n*n 배열 구조를 출력해보자.

입력이 3인 경우 다음과 같이 출력한다.
3 6 9
2 5 8
1 4 7

입력이 5인 경우는 다음과 같이 출력한다.
5 10 15 20 25
4 9 14 19 24
3 8 13 18 23
2 7 12 17 22
1 6 11 16 21

입력이 n인 경우의 2차원 배열을 출력해보자.

 

[입력]

 첫 번째 줄에 배열의 크기 n이 입력된다.
[입력값의 정의역]
1<= n <= 100

[출력]

n*n 크기의 배열을 설명과 같이 채워 출력한다.

 

[입력 예시]

4

[출력 예시]

4 8 12 16

3 7 11 15

2 6 10 14

1 5 9 13

 

[코드]

#include<stdio.h>

int main() {
	int a[100][100];
	int n, i, j, cnt;

	scanf("%d", &n);

	for (i = 0; i < n; i++) {
		cnt = n-i;
		for (j = 0; j < n; j++) {
			a[i][j] = cnt + n*j;
			printf("%d ", a[i][j]);
		}
		printf("\n");
	}

	return 0;
}

 

[문제 설명]

다음과 같은 n*n 배열 구조를 출력해보자.

입력이 3인 경우 다음과 같이 출력한다.
1 4 7
2 5 8
3 6 9

입력이 5인 경우는 다음과 같이 출력한다.
1 6 11 16 21
2 7 12 17 22
3 8 13 18 23
4 9 14 19 24
5 10 15 20 25

입력이 n인 경우의 2차원 배열을 출력해보자.

 

[입력]

첫 번째 줄에 배열의 크기 n이 입력된다.
[입력값의 정의역]
1<= n <= 100

[출력]

n*n 크기의 배열을 설명과 같이 채워 출력한다.

 

[입력 예시]

4

[출력 예시]

1 5 9 13

2 6 10 14

3 7 11 15

4 8 12 16

 

[코드]

#include<stdio.h>

int main() {
	int a[100][100];
	int n, i, j, cnt;

	scanf("%d", &n);

	for (i = 0; i < n; i++) {
		cnt = i+1;
		for (j = 0; j < n; j++) {
			a[i][j] = cnt + n*j;
			printf("%d ", a[i][j]);
		}
		printf("\n");
	}

	return 0;
}

 

[문제 설명]

다음과 같은 n*n 배열 구조를 출력해보자.

입력이 3인 경우 다음과 같이 출력한다.
3 2 1
6 5 4
9 8 7

입력이 5인 경우는 다음과 같이 출력한다.
5 4 3 2 1
10 9 8 7 6
15 14 13 12 11
20 19 18 17 16
25 24 23 22 21

입력이 n인 경우의 2차원 배열을 출력해보자.

 

[입력]

 첫 번째 줄에 배열의 크기 n이 입력된다.
[입력값의 정의역]
1<= n <= 100

[출력]

n*n 크기의 배열을 설명과 같이 채워 출력한다.

 

[입력 예시]

4

[출력 예시]

4 3 2 1

8 7 6 5

12 11 10 9

16 15 14 13

 

[코드]

#include<stdio.h>

int main() {
	int a[100][100];
	int n, i, j, cnt;

	scanf("%d", &n);

	for (i = 0; i < n; i++) {
		cnt = (i + 1) * n;
		for (j = 0; j < n; j++) {
			a[i][j] = cnt;
			cnt--;
			printf("%d ", a[i][j]);
		}
		printf("\n");
	}

	return 0;
}

 

[문제 설명] 

다음과 같은 n*n 배열 구조를 출력해보자.

입력이 3인 경우 다음과 같이 출력한다.
1 2 3
4 5 6
7 8 9

입력이 5인 경우는 다음과 같이 출력한다.
1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
16 17 18 19 20
21 22 23 24 25

입력이 n인 경우의 2차원 배열을 출력해보자.

 

[입력]

첫 번째 줄에 배열의 크기 n이 입력된다.
[입력값의 정의역]
1<= n <= 100

[출력]

n*n 크기의 배열을 설명과 같이 채워 출력한다.

 

[입력 예시]

4

[출력 예시]

1 2 3 4

5 6 7 8

9 10 11 12

13 14 15 16

 

[코드]

#include<stdio.h>

int main() {
	int a[100][100];
	int n, i, j, cnt=1;

	scanf_s("%d", &n);

	for (i = 0; i < n; i++) {
		for (j = 0; j < n; j++) {
			a[i][j] = cnt;
			cnt++;
			printf("%d ", a[i][j]);
		}
		printf("\n");
	}

	return 0;
}

 

[문제 설명]

오름차순 선택 정렬은 '가장 작은 원소를 찾아 첫번째 위치로 옮기고, 남은 원소를 또 탐색하여 그 다음 작은 원소를 찾아 두번째 위치로 옮기고, ... 이런식으로 정렬하는 방식'이다.

이번 문제는 미리 작성된 코드를 보고 빈 칸에 들어갈 코드를 작성하는 것이다.

이 프로그램은 선택 정렬을 구현한 것이며, 실행 결과는 오름차순으로 정렬된다.

[출력]

오름차순으로 정렬된 데이터가 출력된다.

 

[입력]

5

1

3

2

5

4

[출력]

1

2

3

4

5

 

[코드]

#include<stdio.h>
int a[10001];
int n, i, j, temp, min;
int main() {
    scanf("%d", &n);
    for (i = 1; i <= n; i++)
        scanf("%d", &a[i]);
    for (i=1; i<n; i++) {
        min=i;
        for (j=i+1; j<=n; j++) {
			if (a[min] > a[j])
                min = j;
        }
        temp = a[i];
        a[i] = a[min];
        a[min] = temp;
    }
    for (i=1; i<=n; i++)
        printf("%d\n", a[i]);
    return 0;
}

[문제 설명]

버블 정렬은 '인접한 두 원소를 검사하여 자리를 바꿔가며 정렬하는 방식'이다.

이번 문제는 미리 작성된 코드를 보고 빈 칸에 들어갈 코드를 작성하는 것이다.

이 프로그램은 버블 정렬을 구현한 것이며, 실행 결과는 오름차순으로 정렬된다.

 

[출력]

오름차순으로 정렬된 데이터가 출력된다.

 

[입력예시]

5

1

3

2

5

4

[출력예시]

1

2

3

4

5

 

[코드]

#include <stdio.h>
int a[10001];
int n, i, j, temp;
int main() {
    scanf("%d", &n);
    for (i=1; i<=n; i++)
        scanf("%d", &a[i]);

    for(i=1; i<n; i++)
    {

 for (j = 1; j < n;j++)
        {
            if (a[j] > a[j+1])
            {
                temp = a[j];
                a[j] = a[j+1];
                a[j+1] = temp;
            }
        }
    }

    for (i = 1; i <= n; i++)
        printf("%d\n", a[i]);
    return 0;
}

 

[문제]

n개의 숫자가 입력되면, 다음과 같이 크기를 비교한 후 양식에 맞춰 출력하시오.

예를 들어, 1 2 3 2 1 이라는 숫자가 입력되면,

첫 번째 1과 나머지 2, 3, 2, 1을 비교하면 1 < 2,  1 < 3, 1 < 2, 1 = 1 이므로 < < < = 를 출력한다.

두 번째 2와 나머지 1, 3, 2, 1을 비교하면 2 > 1, 2 < 3, 2 = 2, 2 > 1 이므로 > < = > 를 출력한다.

세 번째 3과 나머지 1, 2, 2, 1을 비교하면 3 > 1, 3 > 2, 3 > 2, 3 > 1 이므로 > > > > 를 출력한다.

같은 방법으로 네 번째는 > = < >, 다섯번째는 = < < < 를 출력한다.

이와 같은 방식의 대소 비교 결과를 출력하시오. 

 

[입력]

첫째 줄에 숫자의 개수 n이 입력된다. ( 2 <= n <= 1000)

다음 줄에 n개의 숫자 k가 공백으로 입력된다.( k는 int범위)

[출력] 

샘플 출력 양식에 맞추어 비교 결과를 출력한다.

 

[입력예시]

5

1 2 3 2 1

[출력예시]

1: < < < =

2: > < = >

3: > > > >

4: > = < >

5: = < < <

 

[코드]

#include <stdio.h>

int main()
{
	int n, k[1000], i, j;

	scanf("%d", &n);

	for (i = 0; i < n; i++)
		scanf("%d", &k[i]);

	for (i = 0; i < n; i++) {
		printf("%d: ", i+1);
		for (j = 0; j < n; j++) {
			if (i == j)
				continue;
			if (k[i] > k[j])
				printf("> ");
			else if (k[i] < k[j])
				printf("< ");
			else
				printf("= ");
		}
		printf("\n");
	}

	return 0;
}

 

[문제 설명] 

주현이 엄마는 주현이를 영재로 키우기 위해 매일 혹독한 기억력 테스트를 하고 있다.

N개의 숫자를 먼저 말해주고, M개의 질문을 하면서 그 숫자가 있었는지 없었는지 테스트한다.

만약 있었다면 1을 출력하고, 없었다면 0을 출력한다.

이번에는 주현이가 좋아하는 3단 합체 변신로봇 '또봇 트라이탄'이 선물로 걸려있다.

주현이를 도와 줄수 있는 프로그램을 만드시오.

 

[입력]

첫째줄에 N이 입력된다. (1 <= N <= 10,000,000)

둘째 줄에 N개의 숫자가 공백으로 구분되어 차례대로 입력된다. ( 데이터값의 범위 : 1 ~ 10,000,000)

셋째줄에 질문의 수 M이 입력된다. ( 1 <= M <= 100,000)

넷째 줄에 M개의 질문이 입력된다. 

[출력]

M개의 각각의 질문에 대해 그 숫자가 있었으면 1을 출력, 없었으면 0을 하나씩 차례대로 출력한다.

 

[입력 예시]

5

2 52 23 55 100

4

5 2 55 99

[출력 예시]

0 1 1 0

[코드업 제출 소스]


#include &It;studio&It;
 
int main(){
 
    int N,M;
    int arr[10000001] = {};
    int num;
 
    scanf("%d", &N);
    for (int i = 0; i < N; i++)
    {
        scanf("%d", &num);
        arr[num] = 1;
    }
    
    scanf("%d", &M);
    for (int i = 0; i < M; i++)
    {
        scanf("%d", &num);
        printf("%d ", arr[num]);
    }
    return 0; 
}
 

[Visual Studio 버전 소스]

#include<studio.h>

int main()
{
	int i, j, N, M, cnt=0;
	int* num, * quest;

	scanf_s("%d", &N);

	num = (int*)malloc(sizeof(int) * N);

	for (i = 0; i < N; i++)
		scanf_s("%d", num + i);

	scanf_s("%d", &M);

	quest = (int*)malloc(sizeof(int) * M);

	for (i = 0; i < M; i++)
		scanf_s("%d", quest + i);

	for (i = 0; i < M; i++) {
		for (j = 0; j < N; j++) {
			if (*(quest + i) == *(num + j)) {
				cnt++;
				break;
			}
		}
		printf("%d ", cnt);
		cnt = 0;
	}

	free(num);
	free(quest);

	return 0;
}

[문제]

C/C++언어에서 가장 기본적인 명령인 출력문이다.

printf()를 이용해 다음 단어를 출력하시오.

Hello

 

[입력]

입력 없음

[출력]

Hello

 

[코드] 

#include<stdio.h>

int main(void) {
    printf("Hello");
    return 0;
}

 

+ Recent posts