본문 바로가기

java42

[java] 백준 4949 균형잡힌 세상 이번 문제는 stack를 활용하여 괄호 짝을 찾는 문제이다. 하지만 이번 문제와는 다르게 소괄호 () 와 대괄호 []가 모두 들어가 있다. 따라서 if문 처리가 조금 복잡하다. 특히 ')'가 나온 뒤 '('가 나오는 등 순서도 신경써야하는 것이 헷갈렸다. 하지만 boolean변수를 하나 추가하여 해결했다. 코드를 통해 설명하겠다. import java.io.BufferedReader; import java.io.InputStreamReader; import java.security.Identity; import java.util.Stack; public class Main { public static void main(String[] args) throws Exception{ BufferedReader .. 2024. 2. 13.
[java]백준 9012 괄호 처음에 이 문제를 봤을 때는 어떤 규칙이 있는 지 파악하기 힘들었다. '('와 ')'의 수를 세야하는 가 싶기도 했다. 하지만 스택을 활용하여 해결하면 간단한문제였다. 생각지도 못한 부분에서 잘못돤 정답이 나오는 경우도 있으니 꼼꼼히 생각해보자. import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.*; public class Main { public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int T = Integer.parseIn.. 2024. 1. 31.
[java] 백준 10773 제로 매우 간단한 문제이다. Stack클래스의 메소드를 연습한다고 생각하면 된다. import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.*; public class Main { public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int K = Integer.parseInt(br.readLine()); int sum = 0; Stack stack = new Stack(); for (int i = 0; i < K; i++) { int num.. 2024. 1. 31.
[java] 백준 28278 스택2 스택을 이해하는 문제이다. 우선 스택의 간단한 개념에 대해서 알아야 한다. 스택은 선입후출의 형태를 가지고 있다. 프링글스 통을 생각하면 될 것 같다. 먼저 들어간 값이 가장 나중에 나오는 것이다. 그렇다면 요구조건에 따라 문제를 하나씩 해결해보면 된다. 자바에 있는 Stack 클래스를 선언하고 사용하면 된다. 또한 1 3과 같은 공백을 통한 입력을 받기위해 StringTokenizer을, 성능을 위해 한변에 출력하기 위한 StringBuilder을 사용했다. 나머지는 if문으로 간단하게 구현할 수 있었다. Stack클래스의 유용한 메소드를 활용하면 편리하다. 조건 2의 경우 2 스택에 정수가 있다면 맨 위의 정수를 빼고 출력한다. 없다면 -1을 대신 출력한다. 로 되어있다. 나는 이것이 맨 위 값을 제.. 2024. 1. 31.
[java] 백준 13909 창문 닫기 n번째 사람이 n의 배수에 해당하는 창문을 닫혀있으면 열고, 열려있으면 닫는 문제이다. 이 문제는 메모리가 64mb로 제한적이고 입력값은 0; i--) { if (i % k == 0) { window[i - 1] = !window[i - 1]; //i번째 창문이 k배수라면 boolean타입을 반대로 변경 } } } for (boolean a : window) { if (a == true) { count++; } // 열린창문세기 } System.out.print(count); } } 이런식으로 boolean 특성을 이용하여 풀이를 할 수 있다. 하지만 메모리를 신경써야한다, 즉 연산을 줄일 어떠한 규칙이 있을 것으로 생각할 수 있다. 그렇다면 수를 차례대로 넣으며 true가 나오는 배열의 값을 알아내 보.. 2024. 1. 29.
[java] 17103 골드바흐 파티션 이 문제는 짝수는 두 개의 소수로 이루어져 있다는 골드바흐 파티션의 개수를 출력하는 문제이다. 문제는 간단하나 요구조건을 생각해야한다. 1. 3, 7 7, 3 철럼 같은 수로 이루어진 수는 1개로 취급한다. 2. 0.5초의 시간으로 걸리는 시간을 고려한다. 이 두 조건이 은근 까다롭다. 특히 제한시간이 짧아 시간초과가 많이 떳다. 다음은 옳게 작동하나 시간초과가 뜨는 코드이다. import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main { public static void main(String[] args) throws Exception { Buffered.. 2024. 1. 29.