Skip to content

Commit 2cf7fb7

Browse files
committed
[level 1] Title: 문자열 나누기, Time: 105.69 ms, Memory: 39.5 MB -BaekjoonHub
1 parent 1621134 commit 2cf7fb7

2 files changed

Lines changed: 114 additions & 0 deletions

File tree

Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
# [level 1] 문자열 나누기 - 140108
2+
3+
[문제 링크](https://school.programmers.co.kr/learn/courses/30/lessons/140108)
4+
5+
### 성능 요약
6+
7+
메모리: 39.5 MB, 시간: 105.69 ms
8+
9+
### 구분
10+
11+
코딩테스트 연습 > 연습문제
12+
13+
### 채점결과
14+
15+
정확성: 100.0<br/>합계: 100.0 / 100.0
16+
17+
### 제출 일자
18+
19+
2026년 01월 28일 12:15:32
20+
21+
### 문제 설명
22+
23+
<p>문자열 <code>s</code>가 입력되었을 때 다음 규칙을 따라서 이 문자열을 여러 문자열로 분해하려고 합니다.</p>
24+
25+
<ul>
26+
<li>먼저 첫 글자를 읽습니다. 이 글자를 x라고 합시다.</li>
27+
<li>이제 이 문자열을 왼쪽에서 오른쪽으로 읽어나가면서, x와 x가 아닌 다른 글자들이 나온 횟수를 각각 셉니다. 처음으로 두 횟수가 같아지는 순간 멈추고, 지금까지 읽은 문자열을 분리합니다.</li>
28+
<li><code>s</code>에서 분리한 문자열을 빼고 남은 부분에 대해서 이 과정을 반복합니다. 남은 부분이 없다면 종료합니다.</li>
29+
<li>만약 두 횟수가 다른 상태에서 더 이상 읽을 글자가 없다면, 역시 지금까지 읽은 문자열을 분리하고, 종료합니다.</li>
30+
</ul>
31+
32+
<p>문자열 <code>s</code>가 매개변수로 주어질 때, 위 과정과 같이 문자열들로 분해하고, 분해한 문자열의 개수를 return 하는 함수 solution을 완성하세요.</p>
33+
34+
<hr>
35+
36+
<h5>제한사항</h5>
37+
38+
<ul>
39+
<li>1 ≤ <code>s</code>의 길이 ≤ 10,000</li>
40+
<li><code>s</code>는 영어 소문자로만 이루어져 있습니다.</li>
41+
</ul>
42+
43+
<hr>
44+
45+
<h5>입출력 예</h5>
46+
<table class="table">
47+
<thead><tr>
48+
<th>s</th>
49+
<th>result</th>
50+
</tr>
51+
</thead>
52+
<tbody><tr>
53+
<td>"banana"</td>
54+
<td>3</td>
55+
</tr>
56+
<tr>
57+
<td>"abracadabra"</td>
58+
<td>6</td>
59+
</tr>
60+
<tr>
61+
<td>"aaabbaccccabba"</td>
62+
<td>3</td>
63+
</tr>
64+
</tbody>
65+
</table>
66+
<hr>
67+
68+
<h5>입출력 예 설명</h5>
69+
70+
<p>입출력 예 #1<br>
71+
<code>s</code>="banana"인 경우 ba - na - na와 같이 분해됩니다.</p>
72+
73+
<p>입출력 예 #2<br>
74+
<code>s</code>="abracadabra"인 경우 ab - ra - ca - da - br - a와 같이 분해됩니다.</p>
75+
76+
<p>입출력 예 #3<br>
77+
<code>s</code>="aaabbaccccabba"인 경우 aaabbacc - ccab - ba와 같이 분해됩니다.</p>
78+
79+
80+
> 출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/challenges
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
function solution(s) {
2+
var answer = 0;
3+
4+
let point = 0;
5+
let x = s[point];
6+
let xCount = 0;
7+
let yCount = 0;
8+
let isComplete = false;
9+
10+
for(let i = 0; i < s.length; i++) {
11+
isComplete = false;
12+
console.log(x,s[i])
13+
if (x === s[i]) {
14+
xCount++
15+
} else {
16+
yCount++
17+
}
18+
console.log('xCount',xCount,'yCount',yCount)
19+
if (xCount === yCount) {
20+
point = i+1
21+
answer++
22+
xCount = 0
23+
yCount = 0
24+
x = s[point]
25+
isComplete = true;
26+
}
27+
}
28+
29+
if (isComplete === false) {
30+
answer++
31+
}
32+
33+
return answer;
34+
}

0 commit comments

Comments
 (0)