백준 25497 기술 연계마스터 임스

sundays·2022년 8월 23일
0

문제

기술 연계마스터 임스

풀이

한번에 다 짰는데...^^;;; 이거 10번 틀렸음

테스트케이스는 다 통과하는데 3퍼에서 짤리는거 보니 극초반에 메모리 삑 아니면 설명할게 딱히 없는거 같다. 그래서 아주그냥 Scanner 썼다가 BufferedReader 썼다가 스택지우고 기본 배열의 인덱스 활용해서 했다가...^^
어느 지혜로운 분께서 틀린테스트 케이스를 공유 해주시면 좋겠다

코드

package boj;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Stack;

public class Main {
    public static void main(String[] args) throws IOException{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int n = Integer.parseInt(br.readLine());
        String str = br.readLine();
        Stack<Character> s = new Stack<>();
		Stack<Character> s1 = new Stack<>();
        int answer = 0;
        for (int i = 0; i < n; i++) {
            char c = str.charAt(i);
            if (Character.isDigit(c)) {
                answer++;
            } else {
                if (c == 'K') {
                    if (!s.isEmpty()) {
                        if (s.peek() == 'S') {
                            answer++;
							s.pop();
                        } 
                    }
                } else if (c == 'R') {
                    if (!s.isEmpty()) {
                        if (s.peek() == 'L') {
                            answer++;
                        }
                        s.pop();
                    }
                } else {
                    s.push(c);
                }
            }
        }
        System.out.println(answer);
    }
}

정답 코드

package boj;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Stack;

public class Main {
    public static void main(String[] args) throws IOException{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int n = Integer.parseInt(br.readLine());
        String str = br.readLine();
        Stack<Character> s = new Stack<>();
        Stack<Character> s1 = new Stack<>();
        int answer = 0;
        for (int i = 0; i < n; i++) {
            char c = str.charAt(i);
            if (c == 'L') {
                s1.push(c);
            } else if (c == 'S') {
                s.push(c);
            } else if (c == 'K') {
                if (!s.isEmpty()) {
                    answer++;
                    s.pop();
                } else {
                    break;
                }
            } else if (c == 'R') {
                if (!s1.isEmpty()) {
                    answer++;
                    s1.pop();
                } else {
                    break;
                }
            } else {
                answer++;
            }
        }
        System.out.println(answer);
    }
}
profile
develop life

0개의 댓글