반응형
https://leetcode.com/problems/delete-columns-to-make-sorted/description/
문자열을 다뤄보는 문제였습니다.
📕 풀이방법
📔 입력 및 초기화
삭제해야할 열을 의미하는 변수 columns_to_delete를 선언 후 0으로 초기화해줍니다. * c++에선 camel case, rust에서는 lint 규칙에 따라 snake case로 선언했습니다.
📔 풀이과정
매 열을 검사하며 사전순이 아니라면 columns_to_delete를 1씩 증가시켜줍니다. 부등호 연산자로 크기를 비교해 검사가 가능합니다.
📔 정답 출력 | 반환
columns_to_delete를 반환합니다.
📕 Code
📔 C++
class Solution {
public:
int minDeletionSize(vector<string>& strs) {
int columnsToDelete = 0;
for(int i = 0; i < strs[0].size(); i++) {
bool isNotLexicographically = false;
for(int j = 0; j < strs.size() - 1; j++) {
if(strs[j][i] > strs[j+1][i]) {
isNotLexicographically = true;
break;
}
}
if (isNotLexicographically) columnsToDelete++;
}
return columnsToDelete;
}
};
📔 Rust
impl Solution {
pub fn min_deletion_size(strs: Vec<String>) -> i32 {
let mut columns_to_delete = 0;
for i in 0..strs[0].len() {
for j in 0..strs.len() - 1 {
if strs[j].as_bytes()[i] > strs[j + 1].as_bytes()[i] {
columns_to_delete += 1;
break;
}
}
}
columns_to_delete
}
}
*더 나은 내용을 위한 지적, 조언은 언제나 환영합니다.
'Algorithm > String' 카테고리의 다른 글
(C++) - LeetCode (easy) 1078. Occurrences After Bigram (0) | 2023.10.25 |
---|---|
(C++) - LeetCode (easy) 1002. Find Common Characters (0) | 2023.09.25 |
(C++) - LeetCode (easy) 929. Unique Email Addresses (0) | 2023.09.05 |
(C++, Rust) - LeetCode (easy) 917. Reverse Only Letters (0) | 2023.08.31 |
(C++) - LeetCode (easy) 868. Binary Gap (0) | 2023.08.04 |