<백준 1152번 - 단어의 개수>
코드는 github에서 SoongsilMilhouse를 검색하시면 됩니다.
(https://github.com/SoongsilMilhouse/BaekjoonOnlineJudge)
* 큰 틀
1) 입력을 받고 '\n'(개행문자)를 null(널문자)로 바꿔준다. (fgets를 쓰면 개행까지 들어가기 때문이다.)
2) 문장의 끝 지점을 nullPoint라는 변수에 저장한다.
3) 반복문을 시작하기 전에 배열의 첫 문자가 공백인지 공백이 아닌지 검사한다.
4) 반복문으로 원소 하나하나 접근하며 공백 개수(spaceCount)를 센다.
* 세부사항('_'(언더바)문자는 공백입니다.)
1) 첫문자가 공백이 아닌 경우
1-1) 'a' 입력한 경우 (배열엔 'a','\0'으로 저장되어 있다.)
spaceCount = 0;
1-2) "a_b"의 경우 ('a',' '(공백),'b','\0')
spaceCount = 1;
1-3) "a_b_"의 경우
spaceCount = 2; -> \0앞에 문자가 공백(' ')이면 -1을 해준다.
1-4) 1-1에서 1-3까지의 과정을 마친 후에 +1을 해준다. (spaceCount는 공백을 세는 것이지만
결국엔 단어의 개수를 나타낸다. 공백이 없는 1-1)의 경우엔 1-4에서 +1을 해줌으로써 단어의 개수를
1개로 만들어준다.)
2) 첫문자가 공백인 경우
2-1) "_a"의 경우(' '(공백),'a','\0')
spaceCount = 1;
2-2) "_a_"의 경우( 2-1에서 'a'뒤에 공백 추가) -> \0앞에 문자가 공백이면 -1을 해준다.
spaceCount = 2;
2-3) "_a_b"의 경우 -> \0앞에 문자가 공백이 아니면 spaceCount값을 그대로 쓴다.
spaceCount = 2;
'자료구조 및 알고리즘 > 알고리즘' 카테고리의 다른 글
[알고리즘] 코딩인터뷰 완전분석 - 1.5 하나 빼기 (0) | 2019.05.10 |
---|---|
[알고리즘] 코딩인터뷰 완전분석 - 1.4 회문 순열 (0) | 2019.05.09 |
[알고리즘] 코딩인터뷰 완전분석 - 1.3 URL화 (0) | 2019.05.01 |
[알고리즘] 코딩인터뷰 완전분석 - 1.2 순열확인 (0) | 2019.04.30 |
[알고리즘] 코딩인터뷰 완전분석 - 1.1 중복이 없는가 (0) | 2019.04.30 |