본문 바로가기
C/Baekjoon

[BOJ] SISS 겨울방학 스터디 - 7주차

by 단월໒꒱ 2022. 2. 10.

#10809

[문제]

 

 

 

[코드 및 결과]

 

#include <stdio.h>

int main() {
    int alpha[26];
    char s[101];
    
    scanf("%s", s);
    
    for (int i = 0; i < 26; i++) {
        alpha[i] = -1;
    }
    
    for (int i = 'a'; i <= 'z'; i++) {
        for (int j = 0; s[j] != '\0'; j++) {
            if (s[j] == i) {
                alpha[s[j] - 'a'] = j;
                break;
            }
        }
    }
    for (int i = 0; i < 26; i++) {
        printf("%d ", alpha[i]);
    }
    
    printf("\n");
    
    return 0;
}

 

 

 

 

 

 

[설명]

입력받을 문자열 s와 알파벳 배열 alpha를 각각 선언하고 scanf로 문자열 s를 입력받는다.

반복문으로 alpha 배열의 값을 모두 -1로 초기화시킨다.

알파벳 a부터 z까지 한번씩 돌면서 입력받은 s 배열도 같이 도는데, 여기서 s[j]가 i와 같을 경우에 해당 위치를 alpha 배열에 저장하고 break 해준다.

여기서 break를 안해줄 경우, 첫번째로 등장한 위치가 저장되는 게 아니라 마지막으로 등장한 위치가 저장되기 때문에 꼭 break를 해야한다.

마지막으로 alpha 배열에 저장된 값들을 하나씩 출력해준다.

 

 

 

#10818

[문제]

 

 

 

[코드 및 결과]

 

#include <stdio.h>

int main() {
    int N, max = -1000000, min = 1000000;
    int num[1000000];
    
    scanf("%d", &N);
    
    for (int i = 0; i < N; i++) {
        scanf("%d", &num[i]);
        if (max < num[i]) max = num[i];
        if (min > num[i]) min = num[i];

    }
    
    printf("%d %d\n", min, max);
    
    return 0;
}

 

 

 

 

 

 

[설명]

입력받을 정수의 개수 N과 입력받을 정수를 저장할 배열 num을 정수로 선언해주고 정수의 범위에 따라 max는 -1000000, min은 1000000으로 초기값을 잡아준다.

scanf로 정수의 개수 N을 입력받고 N만큼 숫자를 입력받아 num 배열에 차근차근 저장해준다.

그리고 값을 배열에 저장하는 동시에 if문으로 max와 num[i], min과 num[i]를 비교하여 max와 min의 값을 조정한다.

마지막으로 위의 과정을 통해 구한 min, max의 값을 출력한다.

 

(두번 틀렸는데 주어진 정수의 범위를 고려하지 않았기 때문이었다.

따라서 정수의 범위를 고려하여 max와 min의 초기값을 다시 설정해주었더니 성공했다.)

 

 

 

#10871

[문제]

 

 

 

[코드 및 결과]

 

#include <stdio.h>

int main() {
    int N, X, num;
    
    scanf("%d %d", &N, &X);
    
    for (int i = 0; i < N; i++) {
        scanf("%d", &num);
        if (X > num) printf("%d ", num);
    }
    printf("\n");
    
    return 0;
}

 

 

 

 

 

 

[설명]

정수의 개수 N, 비교 기준이 될 수 X, 입력받을 수 num을 정수로 선언한다.

N과 X를 입력받은 뒤 입력받은 N 만큼 수를 입력받아 num에 임시로 저장한다.

이때, 수를 입력받고 X와 num을 비교하여 num이 X보다 작을 경우 해당 수를 출력하도록 한다.

위의 과정을 N만큼 수를 입력받을 때까지 반복한다.

 

 

 

댓글