ํ‹ฐ์Šคํ† ๋ฆฌ ๋ทฐ

[ ๋ฌธ์ œ 2-2 ] (100์ ) ๊ณต๋ฐฑ์ด ํฌํ•จ ๋œ N๊ฐœ์˜ ๋ฌธ์ž์—ด์„ ์ž…๋ ฅ๋ฐ›์•„, ๊ฐ ๋ฌธ์ž์—ด์˜ M1๋ฒˆ์งธ ๋ฌธ์ž๋ถ€ํ„ฐ
M2๋ฒˆ์งธ ๋ฌธ์ž๊นŒ์ง€์˜ ๋ฌธ์ž๋“ค ์ค‘์— ์˜์–ด๋Œ€๋ฌธ์ž๊ฐ€ ๋ช‡ ๊ฐœ ํฌํ•จ๋˜๋Š”์ง€ ์„ธ์–ด (M1๋ฒˆ์งธ ๋ฌธ์ž์™€ M2๋ฒˆ์งธ
๋ฌธ์ž ํฌํ•จ), ์˜์–ด ๋Œ€๋ฌธ์ž๋ฅผ ๊ฐ€์žฅ ์ ๊ฒŒ ํฌํ•จํ•˜๋Š” ๋ฌธ์ž์—ด์„ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์•„๋ž˜์˜ check_u ํ•จ
์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ž‘์„ฑํ•˜์‹œ์˜ค. ๋‹จ, ๋ฌธ์ž์—ด์˜ ์ตœ๋Œ€ ๊ธธ์ด๋Š” 100์ด๊ณ , ์˜์–ด๋Œ€๋ฌธ์ž๋ฅผ ํ•˜๋‚˜๋„ ํฌํ•จํ•˜์ง€ ์•Š
์€ ๋ฌธ์ž์—ด์€ ์ถœ๋ ฅ์—์„œ ์ œ์™ธํ•œ๋‹ค. (N์€ ์ตœ๋Œ€ 20 ์ด๋‹ค. ๋™์ ํ• ๋‹น๋ฌธ์ œ๊ฐ€ ์•„๋‹˜. 2์ฐจ์› ๋ฐฐ์—ด์ด ํ•„์š” ์—†
๋Š” ๋ฌธ์ œ์ด๋‹ค)
- ์ •์ˆ˜ N๊ณผ M1, M2๋ฅผ ์ž…๋ ฅ๋ฐ›๊ณ , ๊ณต๋ฐฑ์ด ํฌํ•จ๋œ N๊ฐœ์˜ ๋ฌธ์ž์—ด์„ ์ž…๋ ฅ ๋ฐ›๋Š”๋‹ค.
- M1๊ณผ M2๋Š” 0๋ถ€ํ„ฐ ํ‘œ์‹œ๋˜์–ด ๋ฌธ์ž์—ด๋‚ด์˜ ๊ฐ ๋ฌธ์ž์˜ ์œ„์น˜๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค. M1 ๊ฐ’์ด ๋ฌธ์ž์—ด์˜ ๊ธธ์ด
๋ณด๋‹ค ํฐ ๊ฒฝ์šฐ๋Š” ์—†๋‹ค๊ณ  ๊ฐ€์ •ํ•œ๋‹ค. M2๊ฐ’์ด ๋ฌธ์ž์—ด์˜ ๊ธธ์ด๋ณด๋‹ค ํฐ ๊ฒฝ์šฐ์—๋Š” ๋ฌธ์ž์—ด ๋๊นŒ์ง€๋งŒ
๊ฒ€์‚ฌํ•œ๋‹ค. M1 โ‰ฆ M2
- ์˜์–ด๋Œ€๋ฌธ์ž๋ฅผ ๊ฐ€์žฅ ์ ๊ฒŒ ํฌํ•จํ•˜๋Š” ๋ฌธ์ž์—ด์ด ๋‘ ๊ฐœ ์ด์ƒ์ธ ๊ฒฝ์šฐ์—๋Š” ํ•ด๋‹น ๋ฌธ์ž์—ด ์ค‘ ๋ฌธ์ž์—ด์˜
๊ธธ์ด๊ฐ€ ๊ฐ€์žฅ ๊ธด ๋ฌธ์ž์—ด์„ ์ถœ๋ ฅํ•œ๋‹ค.
- ์˜์–ด๋Œ€๋ฌธ์ž๋ฅผ ๊ฐ€์žฅ ์ ๊ฒŒ ํฌํ•จํ•˜๋Š” ๋ฌธ์ž์—ด์ด ๋‘ ๊ฐœ ์ด์ƒ์ด๋ฉฐ, ์ด ์ค‘ ๊ธธ์ด๊ฐ€ ๊ฐ™์€ ๋ฌธ์ž์—ด์ด ์žˆ
๋Š” ๊ฒฝ์šฐ, ํ•ด๋‹น ๋ฌธ์ž์—ด ์ค‘ ๊ฐ€์žฅ ๋‚˜์ค‘์— ์ž…๋ ฅ๋œ ๋ฌธ์ž์—ด์„ ์ถœ๋ ฅํ•œ๋‹ค.
- ํ•„์š”ํ•œ ๊ฒฝ์šฐ, ํ‘œ์ค€ ๋ฌธ์ž์—ด ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.
- N๊ฐœ์˜ ๋ฌธ์ž์—ด ์ค‘์—์„œ, ๋Œ€๋ฌธ์ž๋ฅผ 1๊ฐœ ์ด์ƒ ํฌํ•จํ•˜๋Š” ๋ฌธ์ž์—ด์ด 1๊ฐœ ์ด์ƒ ์žˆ๋‹ค.
- check_u ํ•จ์ˆ˜
โ—ฆ ํ•จ์ˆ˜์›ํ˜• : int check_u(char *p, char *q)
โ—ฆ ๋ฌธ์ž์—ด ์ค‘ p๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๋Š” ๋ฌธ์ž๋ถ€ํ„ฐ q๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๋Š” ๋ฌธ์ž๊นŒ์ง€ ์˜์–ด๋Œ€๋ฌธ์ž์˜ ์ˆ˜๋ฅผ ์„ธ์–ด ๋ฐ˜ํ™˜
ํ•œ๋‹ค. (p๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๋Š” ๋ฌธ์ž์™€ q๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๋Š” ๋ฌธ์ž ํฌํ•จํ•˜์—ฌ ๊ฒ€์‚ฌ)
โ—ฆ ํ•จ์ˆ˜์—์„œ ๋ฐ˜๋ณต๋ฌธ์œผ๋กœ ๋ฐฐ์—ด์„ ํ›‘์–ด๋ณผ ์‹œ, ์ฃผ์†Œ๋ฅผ ์ด์šฉํ•˜์—ฌ ๋ฐ˜๋ณต๋ฌธ์„ ๊ตฌํ˜„ํ•œ๋‹ค. ์ฆ‰, ํฌ์ธํ„ฐ
๊ฐ€ ๋ฐฐ์—ด์˜ ๊ฐ ์›์†Œ๋ฅผ ์ˆœ์ฐจ์ ์œผ๋กœ ๊ฐ€๋ฆฌํ‚ค๋„๋ก ํ•˜๋ฉฐ, ํฌ์ธํ„ฐ๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๋Š” ์œ„์น˜์˜ ์›์†Œ์— ๋Œ€
ํ•ด ํ•„์š”ํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.
- ๋‹จ, main ํ•จ์ˆ˜์—์„œ์˜ ์ฃผ์†Œ ํ‘œํ˜„ ๋ฐฉ์‹์€ ์ œํ•œ ์‚ฌํ•ญ ์—†๋‹ค.

 

์ž…๋ ฅ ์˜ˆ์‹œ 1
5
3 8
ADVANCED C PROGRAMMING
PROGRAM
Good
****C LANGUAGE
THIS IS STRING
โ†ฆ ํ•ด๋‹น ๊ตฌ๊ฐ„ ๋ฌธ์ž๋Š” ์ง„ํ•˜๊ฒŒ ํ‘œ์‹œ

 

์ถœ๋ ฅ ์˜ˆ์‹œ 1
THIS IS STRING
โ†ฆ ๋Œ€๋ฌธ์ž ๊ฐœ์ˆ˜๊ฐ€ 0์ธ Good์„ ์ œ์™ธํ•˜๋ฉด ์ตœ์†Œ ๋Œ€๋ฌธ์ž ๊ฐœ
์ˆ˜๋Š” 4์ด๋‹ค.
โ†ฆ ์ด ์ค‘ ๋ฌธ์ž์—ด ์ „์ฒด ๊ธธ์ด๊ฐ€ ๊ฐ€์žฅ ๊ธด ****C LANGUAGE
์™€ THIS IS STRING ์ค‘ ๋‚˜์ค‘์— ์ž…๋ ฅ๋œ THIS IS
STRING ์ถœ๋ ฅ

 

 

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

int check_u(char* p, char* q);

int main() {
	int N, M1, M2;
	char str1[100];

	int len=0, max = 100;
	char str2[100];

	scanf("%d", &N);
	getchar();
	scanf("%d %d", &M1, &M2);
	getchar();


	for (int i = 0; i < N; i++) {
		gets(str1);
		len = check_u(str1 + M1, str1 + M2);

		if (len < max && len !=0) {
			max = len;
			strcpy(str2, str1);
		}
		else if (len == max && len != 0) {
			if (strlen(str1) >= strlen(str2))
				strcpy(str2, str1);
		}
	}
	printf("%s", str2);

	return 0;
}

int check_u(char* p, char* q) {
	int cnt = 0;

	for (char* i = p; i <= q; i++) {
		if (*i >= 'A' && *i <= 'Z')
			cnt++;
		if (*i == NULL) break;
	}

	return cnt;
}

 

 

**2์ฐจ์› ๋ฐฐ์—ด์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ๋ฌธ์ž์—ด์„ ํ•œ ๋ฒˆ ์ž…๋ ฅ ๋ฐ›์„ ๋•Œ๋งˆ๋‹ค ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•ด์„œ ๋ณ€์ˆ˜ ํ•˜๋‚˜์— ๊ธธ์ด ์ €์žฅํ•˜๊ณ , ๋ฐฐ์—ด ํ•˜๋‚˜์— ๋ฌธ์ž์—ด ์ €์žฅํ•ด์„œ ๊ทธ ๋’ค๋กœ ๋ฐ›๋Š” ๋ฌธ์ž์—ด ๋งˆ๋‹ค ๊ฐ™์€ ๊ณผ์ • ๋ฐ˜๋ณต ํ›„ ์ €์žฅ๋œ ๊ฐ’๊ณผ ์ƒˆ๋กœ ๋“ค์–ด์˜จ ๊ฐ’ ๋น„๊ตํ•ด์ฃผ๋ฉด ๋จ!!!

>>> ์ด๋ถ€๋ถ„ ๋ฐฉ๋ฒ•์„ ๋ชฐ๋ผ์„œ ์ข€ ํ—ค๋งธ์Œ

 

**check_uํ•จ์ˆ˜ ์ธ์ž๋กœ ๋ฐฐ์—ด ์‹œ์ž‘ ์ฃผ์†Œ, ๋ ์ฃผ์†Œ๋ฅผ ๋ฐ›์•˜์œผ๋‹ˆ๊นŒ ํ•จ์ˆ˜ ์•ˆ์—์„œ for๋ฌธ ๋Œ๋ฆด ๋•Œ ๋ฌธ์žํ˜• ํฌ์ธํ„ฐ ํ•˜๋‚˜ ์„ ์–ธ ํ›„ ์กฐ๊ฑด ๊ณ„์‚ฐ, ํ˜น์‹œ ๊ตฌ๊ฐ„๋ณด๋‹ค ๋ฌธ์ž์—ด ๊ธธ์ด๊ฐ€ ์งง์„ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ break ๋ฌธ ๋„ฃ์–ด์ฃผ๋Š” ๊ฒƒ ํ•„์ˆ˜.

๋ฐ˜์‘ํ˜•