-
[알고리즘] 백준 1439 문자열 뒤집기알고리즘 2022. 7. 21. 15:21728x90
문제
문자열 뒤집기 접근
1. string 형식의 데이터를 입력받는다.
2. 0 <-> 1 로 바뀔때마다 각각을 count 해준다
3. 첫번째 데이터를 기준으로 해서 2번째 데이터와 끝의 데이터의 범위까지 데이터를 비교해서 count 값을 증가 시켜준다
4. min() 을 통해 둘 중에 더 낮은 값의 count 반환해준다
풀이
# 입력값은 0혹은 1로만 받는다 data = input() # 0 <-> 1로 바뀔때마다 count zeroCount = 0 oneCount = 0 # 첫번째 데이터를 지정 if data[0] == '1': # string 형식으로 처음에 데이터를 입력받음 zeroCount += 1 else: oneCount += 1 # 2번째 데이터부터 체크 for i in range(len(data)-1): # 데이터의 앞뒤가 다른지 체크 ( 2번째 부터 체크 하고 뒤의 데이터와 비교하기에 range범위에 -1을 해줘야한다. ) if data[i] != data[i+1]: if data[i+1] == '1': # 1 -> 0으로 바꾸기 때문에 zeroCount 증가 zeroCount += 1 else: # 0 -> 1으로 바꾸기 때문에 oneCount 증가 oneCount += 1 print(min(zeroCount, oneCount))
배운점은, 뒤의 데이터와 비교를 할때는 range범위에 -1을 해줘야 한다는점이다.
'알고리즘' 카테고리의 다른 글
[알고리즘] 이코테 - 볼링공 고르기 ( 2019 SW 마에스트로 입학 테스트 ) (0) 2022.07.21 [알고리즘] 이코테 - 만들 수 없는 금액 (0) 2022.07.21 [알고리즘] 이코테 - 곱하기 혹은 더하기 (0) 2022.07.21 [알고리즘] 이코테 - 모험가 길드 (0) 2022.07.20 [알고리즘] 백준 - 1240 노드 사이의 거리 (0) 2022.07.20