๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐Ÿ“• STUDY/Algorithm

[C / C++] ๋ฐฑ์ค€ 1152๋ฒˆ - ๋‹จ์–ด์˜ ๊ฐœ์ˆ˜

๋ฐฑ์ค€ 1152๋ฒˆ : https://www.acmicpc.net/problem/1152

 

1110๋ฒˆ: ๋”ํ•˜๊ธฐ ์‚ฌ์ดํด

0๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™๊ณ , 99๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์ •์ˆ˜๊ฐ€ ์ฃผ์–ด์งˆ ๋•Œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์—ฐ์‚ฐ์„ ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋จผ์ € ์ฃผ์–ด์ง„ ์ˆ˜๊ฐ€ 10๋ณด๋‹ค ์ž‘๋‹ค๋ฉด ์•ž์— 0์„ ๋ถ™์—ฌ ๋‘ ์ž๋ฆฌ ์ˆ˜๋กœ ๋งŒ๋“ค๊ณ , ๊ฐ ์ž๋ฆฌ์˜ ์ˆซ์ž๋ฅผ ๋”ํ•œ๋‹ค. ๊ทธ ๋‹ค์Œ,

www.acmicpc.net

 

โœ… ๋ฌธ์ œ ์„ค๋ช…

๋ฌธ์ œ ์ œ๋ชฉ ๊ทธ๋Œ€๋กœ ์˜์–ด ๋Œ€์†Œ๋ฌธ์ž์™€ ๊ณต๋ฐฑ์œผ๋กœ ์ด๋ฃจ์–ด์ง„ ๋ฌธ์ž์—ด์— ํฌํ•จ๋œ ๋‹จ์–ด์˜ ๊ฐœ์ˆ˜๋ฅผ ์ฐพ์œผ๋ฉด ๋œ๋‹ค.

ํ•œ ๋‹จ์–ด๊ฐ€ ์—ฌ๋Ÿฌ ๋ฒˆ ๋“ฑ์žฅํ•˜๋ฉด ๋“ฑ์žฅํ•œ ํšŸ์ˆ˜๋งŒํผ ๋ชจ๋‘ ์„ธ์–ด์•ผ ํ•œ๋‹ค.


โœ… ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์„ค๋ช…

์ด ๋ฌธ์ œ์˜ ๊ฒฝ์šฐ ๊ณต๋ฐฑ์˜ ์กฐ๊ฑด์ด ์ด 3๊ฐ€์ง€์ด๋‹ค.

 

1. ๋ฌธ์ž์—ด์˜ ์‹œ์ž‘์ด ๊ณต๋ฐฑ์ผ ์ˆ˜ ์žˆ๋‹ค.

2. ๋ฌธ์ž์—ด์˜ ๋์ด ๊ณต๋ฐฑ์ผ ์ˆ˜ ์žˆ๋‹ค.

3. ๊ณต๋ฐฑ์€ ์—ฐ์†ํ•ด์„œ ๋‚˜์˜ฌ ์ˆ˜๊ฐ€ ์—†๋‹ค.

 

๋”ฐ๋ผ์„œ ์ด ๊ณต์‹์„ ์ดํ•ดํ•˜๊ฒŒ ๋˜๋ฉด,

๋ฌธ์žฅ์˜ ๋งจ ์ฒซ ๋ฒˆ์งธ์™€ ๋งˆ์ง€๋ง‰์„ ์ œ์™ธํ•œ ๊ณต๋ฐฑ์˜ ๊ฐœ์ˆ˜ +1 ๋งŒํผ ๋‹จ์–ด๊ฐ€ ์žˆ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.

 

์˜ˆ์ œ 2๋ฅผ ๋ณด๋ฉด,

"_The_first_character_is_a_blank"

๋งจ ์ฒซ ๋ฒˆ์งธ ๊ณต๋ฐฑ์„ ์ œ์™ธํ•˜๊ณ  ์ด 5๊ฐœ์˜ ๊ณต๋ฐฑ์„ ๊ฐ–๊ณ  ์žˆ๋‹ค.

 

๊ฐ ๊ณต๋ฐฑ์€ ๋ฌด์กฐ๊ฑด ์ž์‹ ์˜ ์™ผ์ชฝ์— ์žˆ๋Š” ๋‹จ์–ด ํ•œ ๊ฐœ์™€ ์ง์„ ์ด๋ฃจ๊ณ  ์žˆ๊ณ ,

ํ•ญ์ƒ ๋งˆ์ง€๋ง‰ ๋‹จ์–ด๋Š” ํ˜ผ์ž ์กด์žฌํ•œ๋‹ค.

 

๋”ฐ๋ผ์„œ ๋งจ ์ฒซ ๋ฒˆ์งธ์™€ ๋งˆ์ง€๋ง‰์„ ์ œ์™ธํ•œ ๊ณต๋ฐฑ์˜ ๊ฐœ์ˆ˜ + 1

๋ฌธ์ž์—ด์—์„œ์˜ ๋‹จ์–ด์˜ ์ด ๊ฐœ์ˆ˜์ด๋‹ค.


โœ… ์ฝ”๋“œ

#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <cstring>
using namespace std;

int main(void) {
	char word[1000001];
	scanf("%[^\n]", word); // ๋„์–ด์“ฐ๊ธฐ๊นŒ์ง€ ์ž…๋ ฅ๋ฐ›๊ธฐ

	int i, cnt = 0;
	/* word์˜ ๊ธธ์ด๋งŒํผ ํƒ์ƒ‰ */
	for (i = 0; i < strlen(word); i++) {
		/* ์ฒซ๋ฒˆ์งธ์™€ ๋งˆ์ง€๋ง‰์„ ์ œ์™ธํ•˜๊ณ  ๊ณต๋ฐฑ์ด ์žˆ์œผ๋ฉด cnt++ */
		if (word[i] == ' ' && i != 0 && i != strlen(word) - 1)
			cnt++;
	}

	if (strlen(word) < 2 && word[0] == ' ') // ๋‹จ์–ด๊ฐ€ ๊ณต๋ฐฑ ํ•œ๊ธ€์ž๋กœ๋งŒ ์ด๋ค„์กŒ๋‹ค๋ฉด
		printf("0\n"); // ๋‹จ์–ด์˜ ๊ฐœ์ˆ˜ = 0๊ฐœ
	else // ์•„๋‹ˆ๋ผ๋ฉด
		printf("%d\n", cnt + 1); // ๋‹จ์–ด์˜ ๊ฐœ์ˆ˜ = ( ๊ณต๋ฐฑ์˜ ๊ฐœ์ˆ˜ + 1 )
	return 0;
}

 

โšก tip 1

scanf("%[^\n]", word);

์›๋ž˜ scanf์˜ ๊ฒฝ์šฐ ๊ณต๋ฐฑ์„ ์ž…๋ ฅํ•  ์ˆ˜ ์—†๋Š”๋ฐ,

์œ„์™€ ๊ฐ™์ด ์“ฐ๋ฉด ์—”ํ„ฐ ์ž…๋ ฅ ์ „๊นŒ์ง€ ๊ณต๋ฐฑ์„ ํฌํ•จํ•œ ๋ชจ๋“  ๋ฌธ์ž์—ด์„ ์ž…๋ ฅํ•  ์ˆ˜ ์žˆ๋‹ค.

 

โšก tip 2

strlen(word)

์ž…๋ ฅํ•˜๋Š” ๋ฌธ์ž์—ด์˜ ๊ธธ์ด๊ฐ€ ๊ฐ๊ฐ ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์—,

strlen()์„ ์‚ฌ์šฉํ•˜๋ฉด ์ž…๋ ฅํ•˜๋Š” ๋ฌธ์ž์—ด์— ๋งž์ถฐ ๋ฐ˜๋ณต๋ฌธ์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

https://github.com/2hyunjinn/Baekjoon/blob/47edcc3ebe7db69f35f3e67072d326f9d2447b2d/Baekjoon_1152.cpp

 

GitHub - 2hyunjinn/Baekjoon

Contribute to 2hyunjinn/Baekjoon development by creating an account on GitHub.

github.com