No. 10809
#include<stdio.h>
#include<string.h>
int main()
{
int cnt[27], i, j;
char s[101];
scanf("%s", s);
for (i = 0; i < 26; i++) {
cnt[i] = -1;
}
for (i = 'a'; i <= 'z'; i++) {
for (j = 0; j < strlen(s); j++) {
if (s[j] == i) {
cnt[s[j] - 'a'] = j;
break;
}
}
}
for (i = 0; i < 26; i++) {
printf("%d ", cnt[i]);
}
}
<코드 설명>
먼저 s를 입력받은 후 일단 cnt배열에 모든 원소를 -1로 저장해 놓는다. 이중 for문을 이용해 a부터 z까지 값과 s의 원소가 동일한지를 비교해주었다. 동일하다면 cnt배열에 순서값인 j를 넣어준다. 이때 s[j]-'a'번째 원소에 넣어주는 이유는 알파벳 a에 해당하는 값이 97이므로 이 값을 빼주어야 내가 원하는 위치에 해당 값을 넣어줄 수 있다.
이렇게 완성된 cnt배열을 출력해주어 원하는 값을 얻을 수 있었다.
<실행 결과>
No. 10818
#include<stdio.h>
int main()
{
int n, i, max=-9999999,min=999999999,num;
scanf("%d", &n);
for (i = 0; i < n; i++) {
scanf("%d", &num);
if (max < num) max = num;
if (min > num) min = num;
}
printf("%d %d", min, max);
return 0;
}
<코드 설명>
입력할 숫자의 개수인 n을 입력 받고 그만큼을 for문을 이용해 입력받는다. 그리고 max와 min을 각각 아주 작은, 아주 큰 수로 지정해 놓았다.
for문 내에서 max가 입력받은 num보다 작으면 그 수를 max에 저장해준다. 그리고 min이 입력받은 num보다 크면 그 수를 min에 저장해준다.
이러한 방식으로 모든 수를 확인해주고 최종적으로 max와 min에 저장된 수를 출력해주었다.
<실행 결과>
No. 10871
#include<stdio.h>
int main()
{
int n, x, i, num;
scanf("%d %d", &n, &x);
for (i = 0; i < n; i++) {
scanf("%d", &num);
if (num < x) printf("%d ", num);
}
}
<코드 설명>
첫 줄에 입력할 수열의 개수인 n과 정수 x를 입력받는다. 그리고 n만큼 입력받기 위해 for문을 이용해 주었다. num들을 입력 받을 때마다 x보다 작은 지 확인해주고 작다면 이를 출력해주었다.
<실행 결과>
'Algorithm > BOJ' 카테고리의 다른 글
[BOJ] 10828 스택 (0) | 2022.04.02 |
---|---|
[SISS] C 백준 8주차 (11720, 1085, 10250) (0) | 2022.02.14 |
[SISS] C 백준 6주차 (2908, 2920, 3052) (0) | 2022.02.01 |
[SISS] C 백준 5주차 (2742, 2753, 2884) (0) | 2022.01.30 |
[SISS] C 백준 4주차 (2675, 2739, 2741) (0) | 2022.01.22 |