[프로그래머스 | Lv.1] 문자열 나누기

2024. 4. 15. 11:06·Data structure & Algorithm/프로그래머스
목차
  1. 문제 설명
  2. 제한 사항
  3. 입출력 예
  4. 나의 풀이

 

문제 설명

 

문자열 s가 입력되었을 때

다음 규칙을 따라서 이 문자열을 여러 문자열로 분해하려고 합니다.

 

1)

먼저 첫 글자를 읽습니다. 이 글자를 x라고 합시다.

 

2)

이제 이 문자열을 왼쪽에서 오른쪽으로 읽어나가면서,

x와 x가 아닌 다른 글자들이 나온 횟수를 각각 셉니다.

처음으로 두 횟수가 같아지는 순간 멈추고 지금까지 읽은 문자열을 분리합니다.

 

3)

s에서 분리한 문자열을 빼고 남은 부분에 대해서 이 과정을 반복합니다.

남은 부분이 없다면 종료합니다.

 

4)

만약 두 횟수가 다른 상태에서 더 이상 읽을 글자가 없다면,

역시 지금까지 읽은 문자열을 분리하고, 종료합니다.

 

문자열 s가 매개변수로 주어질 때, 위 과정과 같이 문자열들로 분해하고,

분해한 문자열의 개수를 return 하는 함수 solution을 완성하세요.

 

 

제한 사항

 

1 ≤ s의 길이 ≤ 10,000

s는 영어 소문자로만 이루어져 있습니다.

 

 

입출력 예

 

s result
"banana" 3
"abracadabra" 6
"aaabbaccccabba" 3

 

입출력 예 설명

 

입출력 예 #1
s="banana"인 경우 ba - na - na와 같이 분해됩니다.

 

입출력 예 #2
s="abracadabra"인 경우 ab - ra - ca - da - br - a와 같이 분해됩니다.

 

입출력 예 #3
s="aaabbaccccabba"인 경우 aaabbacc - ccab - ba와 같이 분해됩니다.

 

 

 

나의 풀이

func solution(_ s:String) -> Int {
    var answer = 0
    var x = (name: "", count: 0)
    
    for s in s.map { String($0) } {
        if x.name == "" {
            x.name = s
            x.count += 1
        } else {
            x.count += (x.name == s) ? 1 : -1
            
            if x.count == 0 {
                answer += 1
                x = ("", 0)
            }
        }        
    }
    
    return (x.count != 0) ? answer + 1 : answer
}

 

 

 

'Data structure & Algorithm > 프로그래머스' 카테고리의 다른 글

[프로그래머스 | Lv.1] 대충 만든 자판  (7) 2024.04.17
[프로그래머스 | Lv.1] 둘만의 암호  (3) 2024.04.16
[프로그래머스 | Lv.1] 숫자 짝꿍  (6) 2024.04.12
[프로그래머스 | Lv.1] 체육복  (3) 2024.04.11
[프로그래머스 | Lv.1] 로또의 최고 순위와 최저 순위  (1) 2024.04.09
  1. 문제 설명
  2. 제한 사항
  3. 입출력 예
  4. 나의 풀이
'Data structure & Algorithm/프로그래머스' 카테고리의 다른 글
  • [프로그래머스 | Lv.1] 대충 만든 자판
  • [프로그래머스 | Lv.1] 둘만의 암호
  • [프로그래머스 | Lv.1] 숫자 짝꿍
  • [프로그래머스 | Lv.1] 체육복
ohhoooo
ohhoooo
  • ohhoooo
    ohhoooo
    ohhoooo
  • 전체
    오늘
    어제
    • 전체 글 (84)
      • iOS (1)
      • Swift (1)
      • Data structure & Algorithm (67)
        • 프로그래머스 (67)
      • 기타 (15)
        • TIL (2)
        • Android (13)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
ohhoooo
[프로그래머스 | Lv.1] 문자열 나누기
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.