inblog logo
|
LHS's Study Space
    알고리즘문제풀기프로그래머스

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

    lhs's avatar
    lhs
    Dec 02, 2024
    [프로그래머스] 문자열 나누기(140108)
    Contents
    1. 문제 풀이 아이디어2. 나의 정답 코드3. 정리
    school.programmers.co.kr
    https://school.programmers.co.kr/learn/courses/30/lessons/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를 증가시킨다. 이후 pc, dc, prev를 초기화한다.
    • 반복문을 통해 모든 문자를 처리한 뒤 최종적으로 answer를 반환한다.
    Share article
    Contents
    1. 문제 풀이 아이디어2. 나의 정답 코드3. 정리

    LHS's Study Space

    RSS·Powered by Inblog