본문 바로가기

Problem/ETC

[백준알고리즘] 1152번 단어의 개수

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




최근에 1학년 수업을 다시 들으면서 배운 내용을 복습하는 겸 풀어보았다!


수업 때에는 포인터에 대한 내용을 배웠었다!


char *p = str; : char를 가리키는 포인터, str의 시작주소를 갖는다.

p : str의 시작주소

p+1 : p의 자료형의 크기만큼 1이 증가된 주소, char이기 때문에 p의 주소에서 1byte 만큼 이동한 곳의 주소 

*p : str의 시작주소에 있는 값

*p+1 : 값 + 숫자 1

*(p+1) : (p의 주소 + 1byte 이동한 곳의 주소) 의 값


이를 이용한 나의 코드는 아래와 같다!



<나의 코드>


https://github.com/j2wooooo/Daliy_Algorithms/blob/master/Daliy_Algorithms/BOJ_1152/BOJ_1152.cpp


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
 
int main(void)
{
    char str[1000001];
    int ans = 0;
 
    scanf("%[^\n]", str);
 
    char *= str;
    char token = ' ';
    
    while (*== token) p++;
 
    while (1)
    {
        if (*== '\0') {
            if (*(p-1!= token) ans++;
            break;
        }
 
        if (*(p-1!= token && *== token) ans++;
        p++;
    }
    printf("%d", ans);
 
    return 0;
}
cs