728x90
문제 내용, 조건, 예시는 프로그래머스 사이트 참조
https://school.programmers.co.kr/learn/courses/30/lessons/140108
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제를 해석해서 풀어보면 아래와 같은 흐름이 나온다.
1) 첫 글자 x를 뽑음
1-1) 첫 글자는 무조건 일치하므로 'same_index+1'을 해주고 다음 인덱스로 넘김
2) 다음 글자와 비교
2-1) 문자가 같으면 same_index+1
2-2) 문자가 다르면 differ_index+1
3) same_index, differ_index의 값 비교
3-1) (same_index == differ_index) 같으면 answer+1, index+1하고 "1)반복"
3-2) (same_index != differ_index) 다르면 "2)반복"
4) index가 문자열 끝일 때(i == s.length - 1), 문자열 뽑는 작업이 끝나지 않았으면 answer+1을 해주고 완료
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 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | #include <string> #include <vector> using namespace std; int solution(string s) { int answer = 0; char standard_char; int same_index = 0; int differ_index = 0; bool start = true; // flag for(unsigned int i = 0; i < s.length(); i++) { if(start == true) { // 1) standard_char = s[i]; same_index++; start = false; } else { // 2) if(standard_char == s[i]) { same_index++; // 2-1) } else { differ_index++; // 2-2) } // 3) if((same_index == differ_index) && ((same_index > 0) && (differ_index > 0)) ) { // 3-1) start = true; answer++; } else { // 3-2) } } // 4) if(i == (s.length() - 1)) { if(start == false) { answer++; } } } return answer; } | cs |
↓↓↓↓↓↓ 유익했다면 하트 뿅 ♥ ↓↓↓↓↓↓
728x90
반응형
'프로그래밍 > 프로그래머스' 카테고리의 다른 글
Lv1_[크레인 인형뽑기 게임, C++] 알고리즘 정리 - 프로그래머스 (0) | 2022.12.04 |
---|---|
Lv1_[신규 아이디 추천, C++] 알고리즘 정리 - 프로그래머스 (0) | 2022.12.04 |
Lv1_[기사단원의 무기, C++] 알고리즘 정리 - 프로그래머스 (0) | 2022.11.30 |
Lv1_[로또의 최고 순위와 최저 순위, C++] 알고리즘 정리 - 프로그래머스 (0) | 2022.11.16 |
Lv1_[푸드 파이트, C++] 알고리즘 정리 및 풀이 - 프로그래머스 (0) | 2022.11.16 |
댓글