Algorithm
백준 2743번 단어 길이 재기 [ Java ]
2743번: 단어 길이 재기 알파벳으로만 이루어진 단어를 입력받아, 그 길이를 출력하는 프로그램을 작성하시오. www.acmicpc.net strlen이 생각나는 문제입니다. import java.io.*; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); System.out.print(br.readLine().length()); } }
백준 10820번 문자열 분석 [ Java ]
10820번: 문자열 분석 문자열 N개가 주어진다. 이때, 문자열에 포함되어 있는 소문자, 대문자, 숫자, 공백의 개수를 구하는 프로그램을 작성하시오. 각 문자열은 알파벳 소문자, 대문자, 숫자, 공백으로만 이루어져 있 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)); String input = ""; while ((input = br.readLine()) != null) { char s..
백준 1918번 후위 표기식 [ Java ]
1918번: 후위 표기식 첫째 줄에 중위 표기식이 주어진다. 단 이 수식의 피연산자는 A~Z의 문자로 이루어지며 수식에서 한 번씩만 등장한다. 그리고 -A+B와 같이 -가 가장 앞에 오거나 AB와 같이 *가 생략되는 등의 수식 www.acmicpc.net 머릿속으로 스택을 사용해서 푸는과정이 아직 구체적으로 그려지지 않는것 같습니다. 연습이 더 필요할 것 같네요. import java.io.*; import java.util.*; public class Main { static int priority(char ch) { switch (ch) { case '(': return 0; case '+': case '-': return 1; default: return 2; } } public static voi..
백준 1935번 후위 표기식2 [ Java ]
1935번: 후위 표기식2 첫째 줄에 피연산자의 개수(1 ≤ N ≤ 26) 가 주어진다. 그리고 둘째 줄에는 후위 표기식이 주어진다. (여기서 피연산자는 A~Z의 영대문자이며, A부터 순서대로 N개의 영대문자만이 사용되며, 길이 www.acmicpc.net 후위 표기 연산을 해주는 코드를 작성했다. 연산자를 만나면 스택에 숫자를 두 개 꺼내 연산해주고 다시 집어 넣는다. 위 과정을 반복하고 마지막으로 스택에 남아있는 수를 꺼내 포맷에 맞게 출력한다. import java.io.*; import java.util.*; public class Main { public static void main(String[] args) throws IOException { Stack stack = new Stack();..
백준 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번: 팰린드롬 만들기첫째 줄에 문제의 정답을 출력한다. 만약 불가능할 때는 "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);..