๐Ÿ’œ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ/๐Ÿ’œ ๋ฐฑ์ค€

[๋ฐฑ์ค€] C 15์ผ์ฐจ (๋‹จ์–ด์˜ ๊ฐœ์ˆ˜ #1152๋ฒˆ) ๊ณต๋ฐฑํฌํ•จ ๋ฌธ์ž์—ด ์ž…๋ ฅ,strtok

eyes from es 2022. 12. 17. 13:35
728x90
๋ฐ˜์‘ํ˜•

https://www.acmicpc.net/problem/1152

 

1152๋ฒˆ: ๋‹จ์–ด์˜ ๊ฐœ์ˆ˜

์ฒซ ์ค„์— ์˜์–ด ๋Œ€์†Œ๋ฌธ์ž์™€ ๊ณต๋ฐฑ์œผ๋กœ ์ด๋ฃจ์–ด์ง„ ๋ฌธ์ž์—ด์ด ์ฃผ์–ด์ง„๋‹ค. ์ด ๋ฌธ์ž์—ด์˜ ๊ธธ์ด๋Š” 1,000,000์„ ๋„˜์ง€ ์•Š๋Š”๋‹ค. ๋‹จ์–ด๋Š” ๊ณต๋ฐฑ ํ•œ ๊ฐœ๋กœ ๊ตฌ๋ถ„๋˜๋ฉฐ, ๊ณต๋ฐฑ์ด ์—ฐ์†ํ•ด์„œ ๋‚˜์˜ค๋Š” ๊ฒฝ์šฐ๋Š” ์—†๋‹ค. ๋˜ํ•œ ๋ฌธ์ž์—ด

www.acmicpc.net


1. ๋ฌธ์ œ

์˜์–ด ๋Œ€์†Œ๋ฌธ์ž์™€ ๊ณต๋ฐฑ์œผ๋กœ ์ด๋ฃจ์–ด์ง„ ๋ฌธ์ž์—ด์ด ์ฃผ์–ด์ง„๋‹ค. ์ด ๋ฌธ์ž์—ด์—๋Š” ๋ช‡ ๊ฐœ์˜ ๋‹จ์–ด๊ฐ€ ์žˆ์„๊นŒ? ์ด๋ฅผ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค. ๋‹จ, ํ•œ ๋‹จ์–ด๊ฐ€ ์—ฌ๋Ÿฌ ๋ฒˆ ๋“ฑ์žฅํ•˜๋ฉด ๋“ฑ์žฅํ•œ ํšŸ์ˆ˜๋งŒํผ ๋ชจ๋‘ ์„ธ์–ด์•ผ ํ•œ๋‹ค.

 

2. ์ž…๋ ฅ

์ฒซ ์ค„์— ์˜์–ด ๋Œ€์†Œ๋ฌธ์ž์™€ ๊ณต๋ฐฑ์œผ๋กœ ์ด๋ฃจ์–ด์ง„ ๋ฌธ์ž์—ด์ด ์ฃผ์–ด์ง„๋‹ค. ์ด ๋ฌธ์ž์—ด์˜ ๊ธธ์ด๋Š” 1,000,000์„ ๋„˜์ง€ ์•Š๋Š”๋‹ค. ๋‹จ์–ด๋Š” ๊ณต๋ฐฑ ํ•œ ๊ฐœ๋กœ ๊ตฌ๋ถ„๋˜๋ฉฐ, ๊ณต๋ฐฑ์ด ์—ฐ์†ํ•ด์„œ ๋‚˜์˜ค๋Š” ๊ฒฝ์šฐ๋Š” ์—†๋‹ค. ๋˜ํ•œ ๋ฌธ์ž์—ด์€ ๊ณต๋ฐฑ์œผ๋กœ ์‹œ์ž‘ํ•˜๊ฑฐ๋‚˜ ๋๋‚  ์ˆ˜ ์žˆ๋‹ค.

 

3. ์ถœ๋ ฅ

์ฒซ์งธ ์ค„์— ๋‹จ์–ด์˜ ๊ฐœ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

 

 

4. ๋ฌธ์ œํ’€์ด

1)  ๊ณต๋ฐฑ ํฌํ•จ ๋ฌธ์ž์—ด ๋ฐ›๊ธฐ

์ด ๋ฌธ์ œ์˜ ๊ด€๊ฑด์€ ๊ณต๋ฐฑ ํฌํ•จ ๋ฌธ์ž์—ด์„ ์–ด๋–ป๊ฒŒ ์ž…๋ ฅ๋ฐ›๋Š”์ง€ ์˜€๋‹ค.

๊ทธ๋™์•ˆ scanf๋Š” ๊ณต๋ฐฑ์„ ๊ธฐ์ค€์œผ๋กœ ๊ณต๋ฐฑ์ „๊นŒ์ง€์˜ ๋ฌธ์ž๋ฅผ ๋ฐ›๋Š” ๊ฑฐ์˜€๋‹ค. ๊ทธ๋ž˜์„œ,


"The case study of baekjoon" ์„ scanf๋กœ ์ž…๋ ฅ๋ฐ›์œผ๋ฉด

"The"๋งŒ ์ €์žฅ์ด ๋œ๋‹ค!

 

๊ทธ๋ž˜์„œ!! ๊ณต๋ฐฑ ํฌํ•จ ๋ฌธ์ž์—ด์„ ๋ฐ›๊ธฐ ์œ„ํ•ด์„œ๋Š”

scanf("%[^\n]s",arr)

๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

scanset character []๋ฅผ scanf ํ•จ์ˆ˜์— ์ถ”๊ฐ€ํ•ด์ฃผ๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค

[^๋ฌธ์ž] : ํ•ด๋‹น ๋ฌธ์ž๊ฐ€ ๋‚˜์˜ค๊ธฐ ์ „๊นŒ์ง€ ๋ชจ๋“  ๋ฌธ์ž์—ด์„ ๋ฐ›๊ฒ ๋‹ค 

 

(์—”ํ„ฐ)๋ฅผ ์˜๋ฏธํ•˜๋Š” ๋ฌธ์ž์ธ "\n"๋ฅผ ^๋’ค์— ๋„ฃ์–ด์ฃผ๋ฉด, ์—”ํ„ฐ๊ฐ€ ๋‚˜์˜ค๊ธฐ ์ „ ๋ชจ๋“  ๋ฌธ์ž์—ด(๊ณต๋ฐฑ ํฌํ•จ)์„ ๋ฐ›๊ฒ ๋‹ค!

 

https://omyodevelop.tistory.com/120

 

[C/C++] C์–ธ์–ด ๊ณต๋ฐฑ ๋ฌธ์ž ํฌํ•จํ•œ ๋ฌธ์ž์—ด ์ž…๋ ฅ๋ฐ›๋Š” ๋ฐฉ๋ฒ• (scanf / fgets)

์•ˆ๋…•ํ•˜์„ธ์š” omyo ์ž…๋‹ˆ๋‹ค. ์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š”, ๊ณต๋ฐฑ ๋ฌธ์ž๋ฅผ ํฌํ•จํ•œ ๋ฌธ์ž์—ด์„ ์ž…๋ ฅ๋ฐ›๋Š” 2๊ฐ€์ง€ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด์„œ ์†Œ๊ฐœํ•ด ๋“œ๋ฆฌ๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. scanf("%s",๋ฌธ์ž์—ด) ์„ ์ด์šฉํ•ด์„œ ๋ฌธ์ž์—ด์„ ๋ฐ›์œผ๋ฉด, scanf๋Š” ๊ณต๋ฐฑ์„

omyodevelop.tistory.com

 

2)  ๊ณต๋ฐฑ ๊ธฐ์ค€์œผ๋กœ ๋ฌธ์ž์—ด ์ž๋ฅด๊ธฐ

ํŠน์ • ๋ฌธ์ž๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋ฌธ์ž์—ด์„ ์ž๋ฅด๊ธฐ ์œ„ํ•ด์„œ๋Š” strtok ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค(string.h)

 

 

C code

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

char arr[1000000];

int main()
{
    int count =0;
    scanf("%[^\n]s",arr);
    
    char *ptr = strtok(arr, " ");
    
    while(ptr !=NULL){
        count++;
        ptr = strtok(NULL, " ");
    }
    
    printf("%d\n",count);
    
    return 0;
}

 

6. ๊ฒฐ๊ณผ

728x90
๋ฐ˜์‘ํ˜•