알고리즘/알고리즘 문제풀이

백준) 스택, 문자열

lusida0131 2022. 5. 30. 15:35
728x90

백준 10773번 제로


내가 떠올린 풀이 해설

기본 스택 문제이다. 스택을 이용해서 0이 아니면 스택에 push 하고 0이면 pop을 해서 스택에 남아있는 수를 sum 해주면 된다.


정확한 풀이

import java.io.*;
import java.util.*;
public class Baek10773 {

	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		int n = Integer.parseInt(br.readLine());
		
		Stack<Integer> stack = new Stack<>();
		
		for(int i = 0; i < n; i++) {
			int m = Integer.parseInt(br.readLine());
			if(m != 0) {
				stack.push(m);
			}
			else {
				stack.pop();
			}
		}
		int sum = 0;
		for(int i = 0; i < stack.size(); i++) {
			sum += stack.get(i);
		}
		System.out.println(sum);
	}
}

백준 1259번 팰린드롬수


내가 떠올린 풀이 해설

기본 문자열 문제 입니다. while을 true로 설정하고 0이면 break을 하고 0이 아니면 stringbulider에서 reverse를 이용해서 뒤집고 그전에 문자랑 같으면 yes 다르면 no를 출력한다.


import java.io.*;
import java.util.*;
public class Baek1259 {

	public static void main(String[] args) throws IOException{
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		while(true) {
			String n = br.readLine();
			if(n.equals("0")) {
				break;
			}
			else {
				String st = new StringBuilder(n).reverse().toString();
				if(st.equals(n)) {
					System.out.println("yes");
				}
				else {
					System.out.println("no");
				}
			}
		}
	}
}

오늘의 회고

오늘은 한주를 시작하는 월요일이라 기본 개념을 물어보는 알고리즘 2문제를 풀었습니다. 주말에 재밌게 놀았으니 평일에 다시 마음 다잡고 이번주도 열심히 나아가겠습니다.

728x90