BOJ | 1152번
Python 풀이
print(len(input().split()))
print(len(input().split()))
input()
으로 단어를 입력 받고 split()
함수로 공백을 기준으로 나눠서 리스트 형태로 저장한다.
이제 만들어진 리스트의 len
(length)을 출력하면 끝이다.
C++ 풀이
#include <string>
#include <iostream>
using namespace std;
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(NULL);
int cnt = 0;
string S;
getline(cin, S);
for (int i = 0; i < S.size(); i++) {
if (isalpha(S[i])) S[i] = tolower(S[i]);
}
for (int i = 0; i < S.size()-1; i++) {
if (isalpha(S[i]) && !isalpha(S[i+1])) { // *
cnt++;
}
}
if (isalpha(S[S.size() - 1])) cnt++;
cout << cnt;
}
#include <string>
#include <iostream>
using namespace std;
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(NULL);
int cnt = 0;
string S;
getline(cin, S);
for (int i = 0; i < S.size(); i++) {
if (isalpha(S[i])) S[i] = tolower(S[i]);
}
for (int i = 0; i < S.size()-1; i++) {
if (isalpha(S[i]) && !isalpha(S[i+1])) { // *
cnt++;
}
}
if (isalpha(S[S.size() - 1])) cnt++;
cout << cnt;
}
예전에 풀어놨던 거라 왜 다 소문자로 바꿨는지 기억은 안나지만 첫번째에 나오는 for문은 삭제해도 무방할 것 같다.
주석으로 // *
별표친 곳을 보면 입력 단어의 인덱스를 돌면서 현재 인덱스에 해당하는 문자가 알파벳이고 그 다음 문자가 알파벳이 아니면 cnt를 1 증가시킨다.
문제에서 입력은 대소문자 알파벳과 공백만 주어진다고 하였으므로 알파벳이 아니면 공백이라는 뜻이다. 그래서 알파벳이 아니면 단어가 끝난 것이므로 단어 개수 1 추가해주면 된다.
Author And Source
이 문제에 관하여(BOJ | 1152번), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@hrpp1300/BOJ-1152번저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)