728x90
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제 풀이
이 문제는 조건에 따라 문자열을 나누는 문제이다. 조건으로는
- 첫 문자를 기준으로 삼는다.
- 왼쪽에서 오른쪽으로 문자열을 읽어나가면서, 첫 문자와 같은 문자가 나오는 횟수, 첫 문자와 다른 문자가 나오는 횟수를 각각 세어, 두 횟수가 같아지는 순간 멈추고, 문자열을 분리한다.
- 분리한 문자열을 제외시키고, 나머지 문자열을 가지고 처음부터 과정을 반복한다.
- 더 이상 읽을 글자가 없다면, 종료하고, 분리된 문자열의 수를 반환한다.
조건에 맞게 코드를 작성해주었다.
정답 코드
C++
#include <string>
#include <vector>
using namespace std;
int solution(string s) {
int answer = 0;
for (int i = 0; i < s.length(); i++) {
int n = 1, m = 0, j = 1;
while (n != m) {
if (s[i] == s[i + j]) n++;
else m++;
j++;
}
answer++;
i += j - 1;
}
return answer;
}
python
def solution(s):
answer = 0
i = 0
while i < len(s) :
n = 1
m = 0
j = 1
while n != m and i + j < len(s) :
if s[i] == s[i + j] :
n += 1
else :
m += 1
j += 1
answer += 1
i += j
return answer
728x90
'Algorithm > PS' 카테고리의 다른 글
[C++, python] 프로그래머스 - 성격 유형 검사하기 (1) | 2023.02.26 |
---|---|
[C++, python] 프로그래머스 - 카드 뭉치 (0) | 2023.02.26 |
[C++, python] 프로그래머스 - 옹알이 (2) (0) | 2023.02.25 |
[C++, python] 프로그래머스 - 기사단원의 무기 (0) | 2023.02.25 |
[C++, python] 프로그래머스 - 숫자 짝궁 (0) | 2023.02.25 |