TIL

[코테연습] 1598. Crawler Log Folder

크라00 2024. 7. 10. 11:04

- 배열, 문자열 문제

 

- 문제해석

1. String[] 배열이 주어질때, 요소는 3가지 패턴 중 하나이다.

1-1. "../" 일때 폴더 앞으로 이동한다. ( 더이상 이동할 수 없을 때는 이동하지 않는다. )

1-2. "./" 일때 폴더 이동하지 않는다. ( 그대로 )

1-3. "x/" x폴더로 뒤로 이동한다 ( 폴더는 반드시 있다고 가정한다. )

2. 이때 String[] 배열만큼 움직였을때의 현재 position 을 리턴하라.

 

- 문제풀이

1. String[] 을 반복문으로 확인한다.

2. 요소를 split("/") 함수로 분해하여 앞의 글자를 확인한다. ( str.split("/")[0]

3. 앞의 글자가 '..' 일 경우 move 변수가 0이 아니라면 move--; 한다.

4. 앞의 글자가 'x' 일 경우 move 변수를 move++; 한다.

 

class Solution {
    public int minOperations(String[] logs) {
        int move = 0;
        for (int i = 0; i < logs.length; i++) {
            String log = logs[i];
            String[] arr = log.split("/");
            String filename = arr[0];
            if (filename.equals("..")) {
                if (move != 0) {
                    move--;
                }
            } else {
                if (!filename.equals(".")) {
                    move++;
                }
            }
        }
        
        return move;
    }
}