[BOJ_step_07] 문자열 01 ~ 03

최대 1 분 소요

문자열

문자열을 다루는 문제들을 해결해 보자.

아스키코드(11654)

문제

간단히 아스키코드값을 출력하는 문제

문제풀이

void solution_11654() {
	char c;
	c = getchar();
	printf("%d", c);
}

숫자의 합(11720)

문제

문자열로 입력받은 숫자들의 합을 구하는 문제

문제풀이

void solution_11720()
{
	int n, sum = 0;
	char a;
	scanf("%d", &n);
	for (int i = 0; i < n; i++) {
		scanf(" %c", &a);
		sum += a - 48;
	}
	printf("%d", sum);
}

알파벳 찾기(10809)

문제

그래프 문제 처럼 해석했다.
1 ~ 26까지 알파벳의 개수 만큼의 정점들이 있고 그 정점에 방문할 때 주어진 문자열의 순서(i) + 1을 Check 배열에 넣어준다.
Check 배열이 0이 아니라면(방문한적이 없다면) -1을 출력하고 아니라면 Check[i] - 1을 출력한다.

문제풀이

void solution_10809()
{
	char S[101];
	int Check[26];
	fill(Check[0], Check[26], 0);
	memset(Check, 0, sizeof(Check));
	scanf("%s", S);
	for (int i = 0; S[i] != '\0'; i++) {
		int n = S[i] - 'a';
		if (!Check[n]) Check[n] = i + 1;
	}
	for (int i = 0; i < 26; i++) {
		if (!Check[i]) printf("-1 ");
		else printf("%d ", Check[i] - 1);
	}
}

댓글남기기