(하다만 내 풀이)
s = input()
zero_chunk_count = 0
one_chunk_count = 0
l = []
for i in s:
l.append(i)
for i in range(len(l)):
if l[i] == '0' and l[i+1] != '0':
zero_chunk_count += 1
elif l[i] == '1' and l[i+1] != '0':
one_chunk_count += 1
if zero_chunk_count > one_chunk_count:
print(one_chunk_count)
elif zero_chunk_count < one_chunk_count:
print(zero_chunk_count)
(정답)
data = input()
count0 = 0 # 전부 0으로 바꾸는 경우
count1 = 0 # 전부 1로 바꾸는 경우
# 첫 번째 원소에 대해서 처리
if data[0] == '1':
count0 += 1
else:
count1 += 1
# 두 번째 원소부터 모든 원소를 확인하며
for i in range(len(data) - 1):
if data[i] != data[i + 1]:
# 다음 수에서 1로 바뀌는 경우
if data[i + 1] == '1':
count0 += 1
# 다음 수에서 0으로 바뀌는 경우
else:
count1 += 1
print(min(count0, count1))
정답 코드로 배운 점
1. 정답 코드에서는 리스트를 활용하지 않았다.
2. 입력값을 실제로 바꾸지 않고도 문제에서 요구하는 값을 도출할 수 있음을 확인했다.
'알고리즘, 문제 풀이기록' 카테고리의 다른 글
ATM 풀이기록 (0) | 2022.01.20 |
---|---|
거스름돈 (0) | 2022.01.14 |
루빅스큐브 2단계 구현기록 (0) | 2021.12.06 |
루빅스 큐브 1단계 구현 기록 (0) | 2021.11.30 |
자바의 정석 연습문제 6-1,2 풀이 (0) | 2021.11.17 |