백준

    백준 17299번 오등큰수 [ Java ]

    17299번: 오등큰수 첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째에 수열 A의 원소 A1, A2, ..., AN (1 ≤ Ai ≤ 1,000,000)이 주어진다. www.acmicpc.net 오큰수랑 똑같은 방식에 빈도 비교하는 배열만 추가하였습니다. import java.io.*; import java.util.*; public class Main { public static void main(String[] args) throws IOException { Stack stack = new Stack(); StringBuilder sb = new StringBuilder(); BufferedReader br = new BufferedReader(new InputS..

    백준 17298번 오큰수 [ Java ]

    17298번: 오큰수 첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째에 수열 A의 원소 A1, A2, ..., AN (1 ≤ Ai ≤ 1,000,000)이 주어진다. www.acmicpc.net 오른쪽에 있는 큰 수 중 가장 왼쪽에 수를 찾는건데 가장 먼저 떠오르는 방법은 현재 인덱스부터 오른쪽을 전부 검사하는 것이다. 하지만 이렇게 하면 O(n^2)의 시간복잡도가 나와서 시간초과가 나오게 된다. 스택을 이용하면 O(n)으로 풀 수 있다. import java.io.*; import java.util.*; public class Main { public static void main(String[] args) throws IOException { Stack stack ..

    백준 17413번 단어 뒤집기 2 [ Java ]

    17413번: 단어 뒤집기 2 문자열 S가 주어졌을 때, 이 문자열에서 단어만 뒤집으려고 한다. 먼저, 문자열 S는 아래와과 같은 규칙을 지킨다. 알파벳 소문자('a'-'z'), 숫자('0'-'9'), 공백(' '), 특수 문자('')로만 이루어져 www.acmicpc.net import java.io.*; import java.util.*; public class Main { public static void main(String[] args) throws IOException { Stack stack = new Stack(); StringBuilder sb = new StringBuilder(); BufferedReader br = new BufferedReader(new InputStreamRead..

    백준 9012번 괄호 [ C, Java ]

    9012번: 괄호 괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고 www.acmicpc.net 스택에 문자를 넣다가 )를 만나면 pop을 1번 합니다. 비어있는데 )를 만나거나 문자열을 모두 돌았는데 스택에 문자가 남아있다면 잘못된 것입니다. c언어는 예전에 풀었던거고 java는 이번에 다시 풀었습니다. C언어 #include char vps[50]; int element_odd(char arr[]); int stack(char stack[]); int count(char arr[]); void clean(char arr[]..

    백준 9093번 단어 뒤집기 [ Java ]

    9093번: 단어 뒤집기 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있으며, 문장이 하나 주어진다. 단어의 길이는 최대 20, 문장의 길이는 최대 1000이다. 단어와 단어 사이에는 www.acmicpc.net 이전에 java에 스트림을 이용해 풀었던 문제지만 더 기존 메소드를 사용하지 않고 풀어보는 연습을 하려고 stack을 사용하였습니다. import java.io.*; import java.util.*; public class Main { public static void main(String[] args) throws IOException { Stack stack = new Stack(); StringBuilder sb = new StringBuilder..

    백준 1213번 팰린드롬 만들기 [ Java ]

    백준 1213번 팰린드롬 만들기 [ Java ]

    1213번: 팰린드롬 만들기첫째 줄에 문제의 정답을 출력한다. 만약 불가능할 때는 "I'm Sorry Hansoo"를 출력한다. 정답이 여러 개일 경우에는 사전순으로 앞서는 것을 출력한다.www.acmicpc.net너무 오랜만에 java 코드를 작성해서 그런지 헷갈리네요..짝수개 글자로 이루어져 있을경우 가운데 들어오는 글자를 null로 넣어서 출력할 때 안보이게 하려했는데틀리다고 나오네요 널도 문자로 인식하는것 같습니다.import java.util.*;public class Main { public static void main(String[] args) { int ascii[] = new int[91]; Scanner sc = new Scanner(System.in);..

    백준 9093번 단어 뒤집기 [ Java ]

    백준 9093번 단어 뒤집기 [ Java ]

    9093번: 단어 뒤집기 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있으며, 문장이 하나 주어진다. 단어의 길이는 최대 20, 문장의 길이는 최대 1000이다. 단어와 단어 사이에는 www.acmicpc.net import java.io.*; import java.util.*; public class Main { public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringBuilder sb = new StringBuilder(); int t = Integer.parseInt(b..

    백준 1259번 펠린트롬수 [ Java ]

    백준 1259번 펠린트롬수 [ Java ]

    1259번: 팰린드롬수 입력은 여러 개의 테스트 케이스로 이루어져 있으며, 각 줄마다 1 이상 99999 이하의 정수가 주어진다. 입력의 마지막 줄에는 0이 주어지며, 이 줄은 문제에 포함되지 않는다. www.acmicpc.net import java.io.*; import java.util.*; public class Main { public static void main(String[] args) throws IOException{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringBuilder sb = new StringBuilder(); while (true){ char[] str = br.readLine..

    백준 1759번 암호 만들기 [ Java ]

    백준 1759번 암호 만들기 [ Java ]

    1759번: 암호 만들기 첫째 줄에 두 정수 L, C가 주어진다. (3 ≤ L ≤ C ≤ 15) 다음 줄에는 C개의 문자들이 공백으로 구분되어 주어진다. 주어지는 문자들은 알파벳 소문자이며, 중복되는 것은 없다. www.acmicpc.net import java.io.*; import java.util.*; public class Main { static int n, r; static char[] ch; static char[] in; static boolean[] visited; static StringBuilder sb = new StringBuilder(); public static void main(String[] args) throws IOException { BufferedReader br =..

    백준 1182번 부분수열의 합 [ Java ]

    백준 1182번 부분수열의 합 [ Java ]

    1182번: 부분수열의 합 첫째 줄에 정수의 개수를 나타내는 N과 정수 S가 주어진다. (1 ≤ N ≤ 20, |S| ≤ 1,000,000) 둘째 줄에 N개의 정수가 빈 칸을 사이에 두고 주어진다. 주어지는 정수의 절댓값은 100,000을 넘지 않는다. www.acmicpc.net import java.io.*; import java.util.*; public class Main { static int n, s, r; static int[] num; static int[] arr; static boolean[] visited; static int count = 0; public static void main(String[] args) throws IOException { BufferedReader br ..