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 *p = str; char token = ' '; while (*p == token) p++; while (1) { if (*p == '\0') { if (*(p-1) != token) ans++; break; } if (*(p-1) != token && *p == token) ans++; p++; } printf("%d", ans); return 0; } | cs |
'Problem > ETC' 카테고리의 다른 글
[C/C++] BOJ 2210 :: 숫자판 점프 (0) | 2019.01.12 |
---|---|
[백준알고리즘] 1005번 ACM Craft (0) | 2019.01.08 |
[백준알고리즘] 9012번 괄호 (0) | 2018.11.27 |
[백준알고리즘] 8741번 이진수 합 (0) | 2018.11.18 |
[백준알고리즘] 11501번 주식 (0) | 2018.11.18 |