크기가 9인 int형 배열을 선언하고, 그 배열을 포인터에 저장한다.

최댓값과 최댓값의 위치를 저장할 변수를 선언하고 0으로 초기화한다.

반복문으로 9번 반복하면서 포인터에 저장된 주솟값으로 배열에 값을 저장한다.

반복문으로 0부터 9까지 반복하면서 각 인덱스가 max보다 큰지 비교하고, 크면 max에 그 값을 저장하고, loc에 그 인덱스를 저장한다.

반복문이 끝나면 max값과 인덱스는 0부터 시작하기 때문에 loc + 1을 출력한다.

정답은 다음 코드와 같다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <stdio.h>
 
int main()
{
    int arr[9];
    int *numList = arr;
    int max = 0, loc = 0;
    
    for(int i = 0; i < 9; i++)
    {
        scanf("%d"&numList[i]);
    }
    for(int i = 0; i < 9; i++)
    {
        if(numList[i] > max)
        {
            max = numList[i];
            loc = i;
        }
    }
    
    printf("%d\n%d", max, loc+1);
    return 0;
}
cs

테스트 케이스의 개수를 입력받고, 개수 만큼 반복한다.

반복문 안에는 char 자료형 크기 80개를 저장할 수 있는 메모리 공간을 할당하고, 그 공간에 문자열을 입력받는다.

점수를 누적할 변수 sum과 점수를 다음 추가할 점수를 저장할 변수 score를 만들고 sum은 0으로, score는 1로 초기화 한다.

입력받은 문자열의 길이 만큼 반복하여 'O'이면 score의 값을 sum에 누적시키고 score의 값을 1 증가시킨다. 'X'면 score의 값을 1로 초기화 한다.

입력 받은 문자열의 개수는 string.h헤더파일의 strlen()함수를 이용하면 구할 수 있다.

정답은 다음 코드와 같다.

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
26
27
28
29
30
31
32
33
34
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
 
int main()
{
    int cnt;
    scanf("%d",&cnt);
    
    for(int i=0; i<cnt; i++)
    {
        char *result = malloc(sizeof(char* 80);
        int score = 1,sum = 0;
        scanf("%s",result);
        
        for(int j=0; j < strlen(result); j++)
        {
            if(result[j]=='O')
            {
                sum += score;
                score++;
            }
            else
            {
                score = 1;
            }
        }
        printf("%d\n",sum);
        free(result); 
    }
    
    return 0;
}
 
cs

금지 키워드로 [ 가 설정되어 있으므로 인덱스 기능을 이용해서는 풀지 못하고, 역참조 연산자를 사용해야 한다.

(char 자료형 크기 * 100) 크기의 메모리를 할당한 포인터를 생성하고 할당한 메모리 공간에 문자열을 입력받는다.

부분 문자 시작 위치와 끝 위치로 사용할 변수 a,b를 선언하고 입력받는다.

반복문으로 a-1부터 b보다 작을때 까지 반복하여 역참조 연산자를 사용하여 문자를 출력한다.

정답은 다음 코드와 같다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <stdio.h>
#include <stdlib.h>
 
int main() 
{
    char *sPtr = malloc(sizeof(char* 100);
    scanf("%s", sPtr);
    
    int a, b;
    scanf("%d %d"&a, &b);
    
    for(int i = a-1; i < b; i++)
    {
        printf("%c"*(sPtr + i));    // 역참조 연산자 
    }
    return 0;
}
cs

+ Recent posts