Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
Tags
- 자바 if문
- 자바 조건문
- 항해99
- 자바 switch문
- 타입스크립트
- Til
- 자바
- 자바 스캐너
- 자바 공배수
- 자바 구구단 출력
- 자바 강제 캐스팅
- 자바 for문
- 자바 public
- 자바 while문
- react ag grid
- TypeScript
- 자바 반복문
- 정보처리기사실기
- 자바 자동캐스팅
- 자바 향상된 for문
- Vue3
- 조코딩
- 자바 삼항연산자
- 항해99 2기
- react with typescript
- MySQL
- 변수
- 이클립스 DB연동
- 프로그래머스
- java
Archives
- Today
- Total
뇌 채우기 공간
[알고리즘] 문자열 뒤집기 python 본문
# Q.
# 0과 1로만 이루어진 문자열이 주어졌을 때,
# 이 문자열에 있는 모든 숫자를 전부 같게 만들려고 한다.
# 할 수 있는 행동은 문자열에서 연속된 하나
# 이상의 숫자를 잡고 모두 뒤집는 것이다.
# 뒤집는 것은 1을 0으로, 0을 1로 바꾸는 것을 의미한다.
# 예를 들어 S=0001100 일 때,
# 전체를 뒤집으면 1110011이 된다.
# 4번째 문자부터 5번째 문자까지
# 뒤집으면 1111111이 되어서 2번 만에 모두 같은 숫자로 만들 수 있다.
# 하지만, 처음부터 4번째 문자부터 5번째 문자까지
# 문자를 뒤집으면 한 번에 0000000이 되어서
# 1번 만에 모두 같은 숫자로 만들 수 있다.
# 주어진 문자열을 모두 0 혹은 모두 1로 같게 만드는
# 최소 횟수를 반환하시오.
input = "01111010"
def find_count_to_turn_out_to_all_zero_or_all_one(string):
count_zero_to_one = 0
count_one_to_zero = 0
for i in range(len(string)-1):
if string[i] =='0' and string[i+1] =='1':
count_zero_to_one +=1
elif string[i] == '1' and string[i+1] == '0':
count_one_to_zero += 1
if count_one_to_zero >= count_zero_to_one:
return count_one_to_zero
elif count_zero_to_one >= count_one_to_zero:
return count_zero_to_one
result = find_count_to_turn_out_to_all_zero_or_all_one(input)
print(result)
다른 풀이
input = "011110"
def find_count_to_turn_out_to_all_zero_or_all_one(string):
count_to_all_zero = 0
count_to_all_one = 0
if string[0] == '0':
count_to_all_one += 1
elif string[0] == '1':
count_to_all_zero += 1
for i in range(len(string) - 1):
if string[i] != string[i + 1]:
if string[i + 1] == '0':
count_to_all_one += 1
if string[i + 1] == '1':
count_to_all_zero += 1
return min(count_to_all_one, count_to_all_zero)
result = find_count_to_turn_out_to_all_zero_or_all_one(input)
print(result)
728x90
'알고리즘 > 이론' 카테고리의 다른 글
[알고리즘] 링크드리스트 add_node구현 (0) | 2021.06.13 |
---|---|
[알고리즘] 링크드 리스트 append 구현 (0) | 2021.06.13 |
[알고리즘] 소수 나열하기/ 소수 찾기 (0) | 2021.06.12 |
[알고리즘] 공간복잡도 파악하기 (0) | 2021.06.12 |
[알고리즘] 문자열에서 알파벳 중에 가장 많이 나온 알파벳 찾기/ 최빈값 찾기 python (0) | 2021.06.12 |