99클럽 코테 스터디 17일차 TIL - 스택

수삼·2024년 11월 13일
0

코딩테스트

목록 보기
22/44

  1. 입력 받기
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        int N = Integer.parseInt(br.readLine());
        String str = br.readLine();
  1. 연속 되는 스킬을 담는다
        Stack<Character> SK = new Stack<>();
        Stack<Character> LR = new Stack<>();
  1. 사전 기술이 스택에 있으면 카운트, 없으면 break.

        int cnt = 0;

        for (int i = 0; i < str.length(); i++) {
            char x = str.charAt(i);
            if (Character.isDigit(x)) {
                cnt++;
            } else if (x == 'L') {
                LR.push(x);
            } else if (x == 'R') {
                if (!LR.isEmpty()) {
                    LR.pop();
                    cnt++;
                } else {
                    break;
                }
            } else if (x == 'S') {
                SK.push(x);
            } else if (x == 'K') {
                if (!SK.isEmpty()) {
                    SK.pop();
                    cnt++;
                } else {
                    break;
                }
            }
        }
        System.out.println(cnt);
    }
}

0개의 댓글