[Swift] 백준, 뒤집기

문제 링크

백준 - 뒤집기

잡담

어렵지 않다라고 생각했는데, 뭔가 문제 자체를 이해하지 못한 것 같아요… 뒤집는 방식에 대해 서술되어있지 않아서 그래서 뭘 어떻게 뒤집으라는거니?? 라는 생각이 들었어요 ㅋㅋㅋㅋ

무작정 가장 적게 뒤집는 방법을 찾으라니까 맨붕이 왔습니다. 그래서 결국.. 그냥 다른 분의 풀이를 참고하게 되었습니다.

풀이

풀이는 생각보다 간단한데, 뭉텅이의 개수를 찾으면 된다고해요. 1이 여러 개 붙어있는 뭉텅이의 개수, 0이 여러 개 붙어있는 뭉텅이의 개수를 비교해서 더 적은 개수를 출력하면 됩니다.

참고한 블로그에서는 이 부분을 for문 안에 if문을 넣어서 처리해줬는데, 뭔가 줄일 수 있다고 생각했어요 ㅋㅋㅋ

저는 고차함수를 써서 4줄로 줄일 수 있었습니다!

코드

import Foundation

let line = readLine()!
let count0 = line.components(separatedBy: "1").filter { $0 != "" }.count
let count1 = line.components(separatedBy: "0").filter { $0 != "" }.count
print(min(count0, count1))