Leetcode Java Remove Sub-Folders from the Filesystem
업데이트:
문제
코드
class Solution {
public List<String> removeSubfolders(String[] folder) {
Arrays.sort(folder);
List<String> result = new ArrayList<>();
for (String path : folder) {
if (result.isEmpty() || !path.startsWith(result.get(result.size() - 1) + "/")) {
result.add(path);
}
}
return result;
}
}
결과
설명
-
folder 중에서 하위 폴더를 제외한 상위 폴더들을 찾는 문제이다.
-
folder를 사전 기준 오름차순으로 정렬해준다.
-
result는 결과를 넣을 변수로, ArrayList로 초기화한다.
- folder의 각 값들을 순차적으로 path에 넣고 아래를 수행한다.
- 아래의 각 경우 중 하나라도 해당하면 result에 path를 넣어준다.
- result가 비어있는 첫 수행인 경우, 사전적으로 가장 작은 폴더 경로이므로 추가한다.
- path가 result에 마지막으로 들어간 값과 동일하게 시작되지 않는 하위 폴더가 아닌 경우.
- 아래의 각 경우 중 하나라도 해당하면 result에 path를 넣어준다.
- 반복이 완료되면 결과가 저장된 result를 주어진 문제의 결과로 반환한다.
소스
Sample Code는 여기에서 확인 가능합니다.
댓글남기기