문제를 이해하고 있다면 바로 풀이를 보면 됨
전체 코드로 바로 넘어가도 됨
마음대로 번역해서 오역이 있을 수 있음
모든 길이가 같은 n개의 문자열이 있는 배열 strs가 주어진다.
문자열은 각 줄에 하나씩 놓아 격자 모양을 만들 수 있다.
abc
bce
cae
사전순으로 정렬되지 않은 열을 삭제하려고 한다. 위 예시에서 0번째 열과 2번째 열은 정렬되어 있지만, 1번째 열은 정렬되어 있지 않아서 삭제해야한다.
삭제할 열의 개수를 반환해라.
#1
Input: strs = ["cba", "daf", "ghi"]
Output: 1
Explanation: 열 0과 2는 정렬되어 있고, 열 1은 그렇지 않아서 하나의 열만 지운다.
#2
Input: strs = ["a", "b"]
Output: 0
Explanation: 열 0만 있고, 정렬되어 있다.지울 수 있는 열이 없다.
#3
Input: strs = ["zyx", "wvu", "tsr"]
Output: 3
Explanation: 3개의 모든 열이 정렬되어 있지 않다. 3개 다 지운다.
class Solution {
public int minDeletionSize(String[] strs) {
int result = 0;
for(int j = 0; j < strs[0].length(); j++){
result += isUnsorted(strs, j);
}
return result;
}
private int isUnsorted(String[] strs, int j){
for(int i = 1; i < strs.length; i++){
if(strs[i].charAt(j) < strs[i - 1].charAt(j)){
return 1;
}
}
return 0;
}
}