-
[Leetcode] 1375. Number of Times Binary String Is Prefix-Aligned - Swift (통과)Algorithm 2022. 12. 30. 17:15
https://leetcode.com/problems/number-of-times-binary-string-is-prefix-aligned/description/
flip 이라는 배열이 들어온다.
그리고 전구의 수는 배열의 길이 만큼있다.
각 전구에는 스위치가 연결되어 있다.
하지만 각 전구의 스위치는 이전 전구의 스위치와 연결이 되어있어 이전 전구가 켜져있어야 전구의 스위치를 올렸을 때 전구가 켜진다.
0번 전구와 1번전구가 연결되어 있고 1번 전구와 2번 전구가 연결되어있다.
0번이 안켜져있는 상태에서 2번은 켜도 소용이 없고 0번 1번이 켜져있어야 2번 스위치를 올렸을 때 불이 들어온다.
그리고 flips 배열에는 스위치를 켜는 순서가 담겨있다
예) flips = [3,2,4,1,5] 라는 배열이 들어올 경우 순서는 아래와 같다
1. 3번 스위치가 켜진다. 하지만 1번 2번이 안켜져있기 때문에 불이 들어오지 않는다
2. 2번 스위치가 켜진다. 하지만 1번이 안켜져있기 때문에 불이 들어오지 않는다.
3. 4번 스위치가 켜진다. 하지만 1번이 안켜져있기 때문에 불이 들어오지 않는다.
4. 1번 스위치가 켜진다. 2번 3번 4번의 스위치가 모두 올라와 있기 때문에 1 ~4번 모두 켜진다. ✅ 불이 들어왔다 Count 1을 더한다.
5. 5번 스위치가 켜진다. 앞에 모든 스위치가 올라와 있기 때문에 5번에 불이 들어온다. ✅ 불이 들어왔다 Count 1을 더한다.
그리고 함수가 리턴해야할 값은 불이 들어온 횟수를 카운트해서 돌려주면 되는 문제이다.
위 예시에서는 2를 리턴하면 되는 문제이다.
class Solution { func numTimesAllBlue(_ flips: [Int]) -> Int { var maximum = 0 var count = 0 for (index, value) in flips.enumerated() { maximum = max(value, maximum) if index+1 == maximum { count += 1 } } return count } }
https://leetcode.com/problems/number-of-times-binary-string-is-prefix-aligned/description/
'Algorithm' 카테고리의 다른 글
[Programmers] 나머지 한 점 - Swift (통과) (0) 2022.12.31 [Leetcode] 1578. Minimum Time to Make Rope Colorful - Swift 1차 시도 (탈락) (0) 2022.12.30 [백준] (Swift) 1697번: 숨바꼭질 - BFS 문제 (0) 2022.05.09 [Programmers] 정렬 : 가장 큰 수 (0) 2022.01.27 [Programmers] 정렬 : K번째수 (0) 2022.01.27