반응형
문제)
문자열 s 가 주어지면 문자열의 세그먼트 수를 반환합니다 .
세그먼트는 공백이 아닌 문자 의 연속된 시퀀스로 정의됩니다 .
문제 난이도 : 하
소요시간 및 풀이)
문자열의 첫 단어가 시작하는 부분에서 시작하기 위해 bool first 변수를 만들어 주었다.
그리고 첫 단어부터 순회를 시작해서 현재 문자가 공백일 때, 이전 문자가 공백이 아니면 answer 카운트를 1 증가시켰다.
그리고 문자열의 마지막이 공백이 아니라 문자로 끝나면 1을 더해주도록해서 문제를 풀었다.
오랜만에 문제를 푸니 쉬운 문제도 빨리 못풀고 좀 헤매는거 같다.
소요 시간 : 18분
정답 코드
class Solution
{
public:
int countSegments(string s)
{
int answer = 0;
bool first = false;
if (s.empty())
return 0;
for (int i = 0; i < s.size(); i++)
{
if (isspace(s[i]) == 0)
first = true;
if (first)
{
if (isspace(s[i]) != 0)
{
if (isspace(s[i - 1]) == 0)
answer++;
}
}
}
if (isspace(s.back()) == 0)
answer++;
return answer;
}
};
반응형
'코딩 테스트 연습' 카테고리의 다른 글
2104. Sum of Subarray Ranges (0) | 2024.08.14 |
---|---|
LeetCode : 2981. Find Longest Special Substring That Occurs Thrice I (0) | 2024.08.06 |
382. Linked List Random Node (1) | 2024.07.22 |
344. Reverse String (2) | 2024.07.22 |
371. Sum of Two Integers (2) | 2024.07.22 |