반응형
url: https://www.acmicpc.net/problem/1439
내 풀이
만일
"0001100"
이라는 문자열이 있다면 이를["000", "00"]
와["11"]
로 만들어서, 즉 0으로 구성된 문자열만을 포함한zero_list
와 1로만 구성된 문자열을 포함한one_list
를 만든다. 그러고 나서 요소가 더 적은(["11"]
) 리스트를 선택하여 해당 리스트의 길이를 출력한다.import sys input = sys.stdin.readline s = input() zero_list = [] one_list = [] result = 0 tmp = s[0] for i in range(len(s)-1): if s[i] == s[i+1]: tmp += s[i+1] else: if '0' in tmp: zero_list.append(tmp) else: one_list.append(tmp) tmp = s[i+1] i += 1 if len(zero_list) > len(one_list): result = len(one_list) else: result = len(zero_list) print(result)
책 풀이
전부 0으로 바꾸는 경우와 전부 1로 바꾸는 경우 중에서 더 적은 횟수를 가지는 경우를 계산한다.
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 else: count1 += 1 print(min(count0, count1))
반응형
'자료구조 및 알고리즘 > 알고리즘' 카테고리의 다른 글
[알고리즘] 이것이 취업을 위한 코딩 테스트다 with 파이썬 - 만들 수 없는 금액 (0) | 2021.01.29 |
---|---|
[알고리즘] 이것이 취업을 위한 코딩 테스트다 with 파이썬 -모험가 길드 (0) | 2021.01.28 |
[알고리즘] 이것이 취업을 위한 코딩 테스트다 with 파이썬 - 볼링공 고르기 (0) | 2021.01.26 |
[알고리즘] 이것이 취업을 위한 코딩 테스트다 with 파이썬 - 곱하기 혹은 더하기 (0) | 2021.01.25 |
[알고리즘] 프로그래머스 - 카펫 (0) | 2021.01.24 |