import java.util.*;

public class Main {
	
	static Stack<Character> stk = new Stack<Character>();
	
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);		
		int T = sc.nextInt();	
		
		for (int i = 0; i < T; i++) {
			String str = sc.next();
			if(VPC(str)) {
				System.out.println("YES");
			}else {
				System.out.println("NO");
			}
			stk.clear();	// 다음 VPC검사를 위해 clear
		}
	}
	
	public static boolean VPC(String str) {
		char[] arr = str.toCharArray();
		
		for (int i = 0; i < arr.length; i++) {
			if(arr[i] == '(') {
				stk.push(arr[i]);
			}
			else if (arr[i] == ')') {
				if(stk.empty()) {	// 비어있으면
					return false;
				}else {	// 비어있지 않으면
					char tmp = stk.peek();
					if(tmp == ')') {
						return false;
					}else {
						stk.pop();						
					}
				}
			}
		}
		
		if(stk.empty()) {
			return true;
		}else {
			return false;
		}
	}
}

'JAVA > 백준' 카테고리의 다른 글

[스택] 백준 10828  (0) 2021.08.03
[문자열 처리] 백준 11656  (0) 2021.07.31
[문자열 처리] 백준 10824  (0) 2021.07.31
[문자열 처리] 백준 11655  (0) 2021.07.30
[문자열 처리] 백준 10820  (0) 2021.07.30

 

import java.util.*;

public class Main {
	
	static List<Integer> stk = new ArrayList<Integer>();
	static int index = -1;	
	
	public static void main(String[] args) {		
		Scanner sc = new Scanner(System.in);
		StringBuffer sb = new StringBuffer();
		
		int N = sc.nextInt();
		
		for(int i = 1; i <= N; i++) {
			String cmd = sc.next();
	
			if("push".equals(cmd)) {
				push(sc.nextInt());
			} else if("pop".equals(cmd)) {
				sb.append(pop()).append("\n");
			} else if("size".equals(cmd)) {
				sb.append(size()).append("\n");
			} else if("empty".equals(cmd)) {
				sb.append(empty()).append("\n");
			} else if("top".equals(cmd)) {
				sb.append(top()).append("\n");
			} 

		}	
		System.out.println(sb.toString());
	}
	
	
	public static void push(int param) {
		stk.add(param);
		index++;
	}
	
	public static int pop() {
		if(empty() == 1) {
			return index;
		}else {
			int popItem = stk.get(index);			
			stk.remove(index);
			index--;
			return popItem;
		}
	}
	
	public static int size() {
		return stk.size();
	}
	
	public static int empty() {
		if(stk.isEmpty()) {
			return 1;
		}else {
			return 0;
		}
	}
	
	public static int top() {
		if(empty() == 1) {
			return index;
		}else {
			return stk.get(index);
		}
	}
}

StringBuffer로 해야 시간제한 통과

'JAVA > 백준' 카테고리의 다른 글

[스택] 백준 9012  (0) 2021.08.03
[문자열 처리] 백준 11656  (0) 2021.07.31
[문자열 처리] 백준 10824  (0) 2021.07.31
[문자열 처리] 백준 11655  (0) 2021.07.30
[문자열 처리] 백준 10820  (0) 2021.07.30

import java.util.*;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);			
		String str = sc.nextLine();		
		List<String> list = new ArrayList<String>();
		
		for (int i = 0; i < str.length(); i++) {
			list.add(str.substring(str.length() -1 - i));			
		}
		list.sort(null);
		for(String s : list) {
			System.out.println(s);
		}		
	}
}

Arrays.sort( ) 는 String 배열은 파라미터로 못 받음

'JAVA > 백준' 카테고리의 다른 글

[스택] 백준 9012  (0) 2021.08.03
[스택] 백준 10828  (0) 2021.08.03
[문자열 처리] 백준 10824  (0) 2021.07.31
[문자열 처리] 백준 11655  (0) 2021.07.30
[문자열 처리] 백준 10820  (0) 2021.07.30

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);			
		String str = sc.nextLine();
		String[] strArr = str.split(" ");
		
		String AB = strArr[0].concat(strArr[1]);
		String CD = strArr[2].concat(strArr[3]);
		
		long result = Long.parseLong(AB) + Long.parseLong(CD);
		System.out.println(result);		
	}
}

int result로 하면 런타임 에러 (NumberFormat) 발생

int의 표현 범위는 -2,147,483,648 ~ 2,147,483,647라서 10,000,001,000,000을 받을 수 없음

'JAVA > 백준' 카테고리의 다른 글

[스택] 백준 10828  (0) 2021.08.03
[문자열 처리] 백준 11656  (0) 2021.07.31
[문자열 처리] 백준 11655  (0) 2021.07.30
[문자열 처리] 백준 10820  (0) 2021.07.30
[문자열 처리] 백준 10809  (0) 2021.07.30

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);			
		String str = sc.nextLine();
		StringBuilder sb = new StringBuilder();
		
		for (int i = 0; i < str.length(); i++) {
			if((str.charAt(i) >= 'a' && str.charAt(i) <= 'z')) {
				int enc = str.charAt(i) + 13;
				if(enc > 122) {
					sb.append((char)(enc - 26));
				}else {
					sb.append((char)enc);
				}
			} else if(str.charAt(i) >= 'A' && str.charAt(i) <= 'Z') {
				int enc = str.charAt(i) + 13;
				if(enc > 90) {
					sb.append((char)(enc - 26));
				}else {
					sb.append((char)enc);
				}
			} else {
				sb.append(str.charAt(i));
			}
		}
		System.out.println(sb.toString());
	}
}

'JAVA > 백준' 카테고리의 다른 글

[문자열 처리] 백준 11656  (0) 2021.07.31
[문자열 처리] 백준 10824  (0) 2021.07.31
[문자열 처리] 백준 10820  (0) 2021.07.30
[문자열 처리] 백준 10809  (0) 2021.07.30
[문자열 처리] 백준 10808  (0) 2021.07.30

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);		
		
		while (sc.hasNext()) {
			String str = sc.nextLine();
			int[] cntArr = new int[4];
			
			for (int i = 0; i < str.length(); i++) {
				if(str.charAt(i) >= 'a' && str.charAt(i) <= 'z' ) {
					cntArr[0]++;
				}
				if(str.charAt(i) >= 'A' && str.charAt(i) <= 'Z' ) {
					cntArr[1]++;
				}
				if(str.charAt(i) >= '0' && str.charAt(i) <= '9' ) {
					cntArr[2]++;
				}
				if(str.charAt(i) == ' ' ) {
					cntArr[3]++;
				}
				
			}
			for (int i = 0; i < cntArr.length; i++) {
				System.out.print(cntArr[i] + " ");
			}
		}
	}
}

char 문자로도 그냥 비교가 가능하다

'JAVA > 백준' 카테고리의 다른 글

[문자열 처리] 백준 10824  (0) 2021.07.31
[문자열 처리] 백준 11655  (0) 2021.07.30
[문자열 처리] 백준 10809  (0) 2021.07.30
[문자열 처리] 백준 10808  (0) 2021.07.30
[입출력] 백준 10992  (0) 2021.07.30

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		String str = sc.next();		
		int[] cntArr = new int[26];
				
		for (int i = 0; i < cntArr.length; i++) {									
			char target = (char)(i+97);			
			cntArr[i] = str.indexOf(target); 				
		}
		for (int i = 0; i < cntArr.length; i++) {
			System.out.print(cntArr[i] + " ");
		}
	}
}


str.indexOf()는 있으면 문자열 상의 인덱스를, 없으면 -1를 return

'JAVA > 백준' 카테고리의 다른 글

[문자열 처리] 백준 11655  (0) 2021.07.30
[문자열 처리] 백준 10820  (0) 2021.07.30
[문자열 처리] 백준 10808  (0) 2021.07.30
[입출력] 백준 10992  (0) 2021.07.30
[입출력] 백준 10991  (0) 2021.07.30

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		String str = sc.next();		
		int[] cntArr = new int[26];		
		
		for (int i = 0; i < str.length(); i++) {									
			cntArr[str.charAt(i)-97]++;										
		}
		for (int i = 0; i < cntArr.length; i++) {
			System.out.print(cntArr[i] + " ");
		}
	}
}


숫자문자 => 숫자로 바꿀땐 str.charAt - '0'  ('0'은 48이니깐)
소문자 => 숫자로 바꿀땐 str.charAt - 97

'JAVA > 백준' 카테고리의 다른 글

[문자열 처리] 백준 10820  (0) 2021.07.30
[문자열 처리] 백준 10809  (0) 2021.07.30
[입출력] 백준 10992  (0) 2021.07.30
[입출력] 백준 10991  (0) 2021.07.30
[입출력] 백준 2446  (0) 2021.07.30

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();		
		
		for(int i = 1; i <= n; i++) {
        	// 공백 채우기
			for(int j = 1; j <= n - i; j++) {
				System.out.print(" ");
			}
			for(int k = 1; k <= (2*i)-1; k++) {
				if(i == n || i == 1) {	// 첫줄, 마지막줄은 전부 *
					System.out.print("*");
				}else {
					if(k == 1 || k == (2*i)-1) { // 시작, 끝만 *
						System.out.print("*");
					}else {	// 가운데 공백 채우기
						System.out.print(" ");
					}
				}
			}
			System.out.println("");
		}
	}
}

'JAVA > 백준' 카테고리의 다른 글

[문자열 처리] 백준 10809  (0) 2021.07.30
[문자열 처리] 백준 10808  (0) 2021.07.30
[입출력] 백준 10991  (0) 2021.07.30
[입출력] 백준 2446  (0) 2021.07.30
[입출력] 백준 2445  (0) 2021.07.30

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();		
		
		for(int i = 1; i <= n; i++) {
			for(int j = 1; j <= n - i; j++) {	// 공백채우기
				System.out.print(" ");
			}
			for(int k = 1; k <= (2*i)-1; k++) {		// 짝수번째는 공백, 홀수번째는 *
				if(k % 2 == 0) {
					System.out.print(" ");
				}else {
					System.out.print("*");
				}
			}
			System.out.println("");
		}
	}
}

 

'JAVA > 백준' 카테고리의 다른 글

[문자열 처리] 백준 10808  (0) 2021.07.30
[입출력] 백준 10992  (0) 2021.07.30
[입출력] 백준 2446  (0) 2021.07.30
[입출력] 백준 2445  (0) 2021.07.30
[입출력] 백준 2441  (0) 2021.07.30