1. 문제
같은 길이의 문자열로 구성된 string 배열이 주어진다.
각 문자열의 같은 인덱스가 순차적으로 발견되지 않는 개수를 출력하면 된다.
"aa", "bb", "ac"라면 각 문자열의 0번째 인덱스는 'a' - 'b' - 'a' 순이므로 순차적으로 발견되지 않는다.
각 문자열의 1번째 인덱스는 'a' - 'b' - 'c' 순이므로 순차적으로 발견된다.
2. 풀이 과정
각 인덱스의 값이 순차적이지 않았다고 이미 판단되었다면 앞으로는 검사할 필요가 없기 때문에 bool 배열을 하나 선언하고, true로 초기화해 두었다.
단순하게 2중 for문으로 두 번째 문자열부터 검사를 실시하였다.
public class Solution {
public int MinDeletionSize(string[] strs) {
var result = 0;
var strLength = strs[0].Length;
var isSorted = new bool[strLength];
isSorted = Enumerable.Repeat(true, strLength).ToArray();
for(int i = 1, length = strs.Length; i < length; ++i)
{
for(int j = 0; j < strLength; ++j)
{
if(isSorted[j] && strs[i - 1][j] > strs[i][j])
{
isSorted[j] = false;
result++;
}
}
}
return result;
}
}
반응형
'LeetCode 풀이노트' 카테고리의 다른 글
[C#] 705. Design HashSet (0) | 2023.05.30 |
---|---|
[C#] 598. Range Addition II (0) | 2023.05.26 |
[C#] 506. Relative Ranks (0) | 2023.05.25 |
[C#] 1689. Partitioning Into Minimum Number Of Deci-Binary Numbers (0) | 2023.05.25 |
[C#] 2006. Count Number of Pairs With Absolute Difference K (0) | 2023.05.24 |