본문 바로가기

알고리즘

python 백준1439 뒤집기(BOJ1439 )

문제링크 : https://www.acmicpc.net/problem/1439

 

1439번: 뒤집기

다솜이는 0과 1로만 이루어진 문자열 S를 가지고 있다. 다솜이는 이 문자열 S에 있는 모든 숫자를 전부 같게 만들려고 한다. 다솜이가 할 수 있는 행동은 S에서 연속된 하나 이상의 숫자를 잡고 모

www.acmicpc.net

문제자체는 간단해서 금방 풀었다

#0과 1로 이루어진 문자열
s = str(input())

count_one = 0
count_zero = 0

temp_char = s[0]
if temp_char == "1":
  count_one += 1
else :
  count_zero += 1

for i in range(1,len(s)):
  if temp_char != s[i]:
    if s[i] == "1":
      count_one += 1
      temp_char = s[i]
    else :
      count_zero += 1
      temp_char = s[i]
if count_one >= count_zero:
  print(count_zero)
else:
  print(count_one)

근데 이런 코드는 좀 뭔가... 느낌이 별로다 힙하지 않은 느낌?

글래서 다른분들은 어찌했나 참고해보고 다시 짠 코드는

#0과 1로 이루어진 문자열
s = str(input())

trasition = 0

key_char = s[0]

for char in s:
  if key_char != char:
    trasition += 1
    key_char = char
    
print((trasition+1)//2)

이거인데 그렇다고 이것도 힙하다고 할순 없다..ㅋㅋㅋ

그래도 훨~~씬 짧아진걸 알수있다.

짧아지긴 했지만 시간같은경우엔 이게 몇 ms더 걸린다

다른사람들 푼걸 보면 진짜 신기하다 어찌 그런생각들은 하는지..