[프로그래머스] 문자열 나누기(140108)

lhs's avatar
Dec 02, 2024
[프로그래머스] 문자열 나누기(140108)
 

1. 문제 풀이 아이디어

  • 반복문을 사용해 첫 문자를 기준으로 같은 문자의 개수와 다른 문자의 개수를 계산하며 문자를 나누는 작업을 반복하면 문제를 해결할 수 있다.

2. 나의 정답 코드

class Solution { public int solution(String s) { int answer = 0; char prev = ' '; int pc = 0; int dc = 0; for (int i = 0; i < s.length(); i++) { char c = s.charAt(i); if (i == s.length() - 1) { answer++; } else if (prev == ' ') { prev = c; pc++; } else if (prev == c) { pc++; } else { dc++; if (pc == dc) { answer++; pc = 0; dc = 0; prev = ' '; } } } return answer; } }

3. 정리

  • 초기값으로 prev를 공백 문자로 설정하고, 같은 문자의 개수를 저장하는 pc와 다른 문자의 개수를 저장하는 dc를 초기화한다.
  • for문을 사용해 문자열의 각 문자를 순차적으로 처리한다:
    • 현재 문자를 c로 가져온다.
    • 마지막 문자일 경우 결과값 answer를 증가시킨다.
    • prev가 공백 문자라면 c를 prev에 저장하고 pc를 증가시킨다.
    • 현재 문자 c가 prev와 같다면 pc를 증가시킨다.
    • c가 prev와 다를 경우 dc를 증가시키고, pc와 dc가 같으면 결과값 answer를 증가시킨다. 이후 pcdcprev를 초기화한다.
  • 반복문을 통해 모든 문자를 처리한 뒤 최종적으로 answer를 반환한다.
Share article

LHS's Study Space