반응형

Java/Algorithm 54

[Java-Algorithm] 백준 4949 균형잡힌 세상 풀이

문제 : https://www.acmicpc.net/problem/4949 4949번: 균형잡힌 세상 하나 또는 여러줄에 걸쳐서 문자열이 주어진다. 각 문자열은 영문 알파벳, 공백, 소괄호("( )") 대괄호("[ ]")등으로 이루어져 있으며, 길이는 100글자보다 작거나 같다. 입력의 종료조건으로 맨 마 www.acmicpc.net 풀이 : 스택에 여는 괄호들을 쌓아두고, 괄호를 하나씩 빼면서 체크했다. 출력조건이 뭔가 안맞았는지 계속 틀렸다고 떠서... 찾느라 고생했다 결과는 같은데 띄어쓰기가 껴있었다... public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputS..

[Java-Algorithm] 백준 1759 암호 만들기

문제 : https://www.acmicpc.net/problem/1759 1759번: 암호 만들기 첫째 줄에 두 정수 L, C가 주어진다. (3 ≤ L ≤ C ≤ 15) 다음 줄에는 C개의 문자들이 공백으로 구분되어 주어진다. 주어지는 문자들은 알파벳 소문자이며, 중복되는 것은 없다. www.acmicpc.net 풀이 : 암호 조합을 만든다는걸 보고, 조합 백트래킹 공부했던것이 생각났다. 처음에 System.out.print로 하나씩 출력했는데 이상하게 계속 틀렸습니다가 떴엇다.. 답은 맞는데... 뭐가 문제지 다시 봐도 봐도 모르겠었다.. 결국 혹시나 해서 StringBuilder로 만들어서 한번에 출력했더니 성공했다.. 뭐지.. 중요한점 1). 사전순으로 나와야한다. => Arrays.sort를 활..

[Java-Algorithm] 백준 10808 알파벳 개수 풀이

문제 : https://www.acmicpc.net/problem/10808 10808번: 알파벳 개수 단어에 포함되어 있는 a의 개수, b의 개수, …, z의 개수를 공백으로 구분해서 출력한다. www.acmicpc.net 풀이 : 아스키코드 숫자만 알면 쉽게 푸는 문제인것 같다. a = 97 public static void main(String[] args) throws IOException { //알파벳 갯수 : 26개 BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String n = br.readLine(); String[] arr = n.split(""); int[] num = new int[26]; for(..

[Java-Algorithm] 백준 1541 잃어버린 괄호 풀이

문제 : https://www.acmicpc.net/problem/1541 1541번: 잃어버린 괄호 첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다 www.acmicpc.net 풀이 : 처음에는 괄호의 위치를 -기준으로 , 괄호가 나온 갯수로 풀이를 해보려고했다. 하지만 더 간단한 방법이 있을것 같아 생각해보았는데, -기준 + 기준으로 묶어서 더하고 빼고 하면 될것 같았다. 결국 괄호의 위치가 뺄셈을 할 수 있게 만들어주는개념으로 괄호를 사용한다는 것을 배제 하였다. 순서 1). 처음에는 -기준으로 쪼갠다. 2). - 기준으로 쪼개지면, 뭉쳐있는 아이들은 ..

[Java-Algorithm] 백준 10953 풀이

문제 : https://www.acmicpc.net/problem/10953 10953번: A+B - 6 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. www.acmicpc.net 풀이 : Comparator를 사용하여 순서정렬, 가입 순서는 비교대상이 아니다.(이미 정렬되있기 때문에) => 처음에 2차원배열을 쓸까 Map을 쓸까 고민하던 멍청이다... 아직도 어떤 문제에 어떤 자료구조를 사용할지 잘 모르지만 열심히 하면 될것이라 생각한다..! public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in))..

[Java-Algorithm] 백준 1181 단어정렬 풀이

문제 : https://www.acmicpc.net/problem/1181 1181번: 단어 정렬 첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다. www.acmicpc.net 풀이 : 우선 정렬을 위해 Arrays.sort를 사용했다. Arrays.sort에 Comparator를 적용시켜, 정렬 방식을 정의할 수 있었다. compare 메소드에서의 중요한점.!!!!! a.compareTo(b) 메소드로, 사전순으로 정렬할 수 있었다. => 자동으로 해준다.!!! 추가적으로 compare 메소드의 return값은 양수 0 음수 세가지로 구분되는데, 양..

[Java-Algorithm] 백준 11719 그대로 출력하기

문제 : https://www.acmicpc.net/problem/11719 11719번: 그대로 출력하기 2 입력이 주어진다. 입력은 최대 100줄로 이루어져 있고, 알파벳 소문자, 대문자, 공백, 숫자로만 이루어져 있다. 각 줄은 100글자를 넘지 않으며, 빈 줄이 주어질 수도 있고, 각 줄의 앞 뒤에 공백이 www.acmicpc.net 풀이 : 그냥 BufferedReader로 하고, 처음에 틀렸었다.. 왜지 하고 왔더니, null 체크를 안한것. *** 중요 public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); A..

[Java-Algorithm] 백준 11721 열개씩 끊어 출력하기

문제 : https://www.acmicpc.net/problem/11721 11721번: 열 개씩 끊어 출력하기 첫째 줄에 단어가 주어진다. 단어는 알파벳 소문자와 대문자로만 이루어져 있으며, 길이는 100을 넘지 않는다. 길이가 0인 단어는 주어지지 않는다. www.acmicpc.net 풀이 : public static void main(String[] args) throws Exception{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String n = br.readLine(); br.close(); int s = 0; int e = 10; for (int i = 0; i < n.length()/10; i++..

[Java-Algorithm] 백준 2164 풀이 (Queue)

문제 : https://www.acmicpc.net/problem/2164 2164번: 카드2 N장의 카드가 있다. 각각의 카드는 차례로 1부터 N까지의 번호가 붙어 있으며, 1번 카드가 제일 위에, N번 카드가 제일 아래인 상태로 순서대로 카드가 놓여 있다. 이제 다음과 같은 동작을 카드가 www.acmicpc.net 풀이 : 거의 Queue를 쓸줄 아느냐 확인만 하는 문제인것 같다. 알고리즘 잘모르니 기초부터 탄탄하게 잡아가자..! public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int n = Integer.pars..

[Java-Algorithm] 백준 10773 풀이 (스택)

1). 문제 : https://www.acmicpc.net/problem/10773 10773번: 제로 첫 번째 줄에 정수 K가 주어진다. (1 ≤ K ≤ 100,000) 이후 K개의 줄에 정수가 1개씩 주어진다. 정수는 0에서 1,000,000 사이의 값을 가지며, 정수가 "0" 일 경우에는 가장 최근에 쓴 수를 지우고, 아닐 경 www.acmicpc.net 2). 풀이 : Stack 사용법 문제이다. Scanner에서 BufferedReader로만 변경해서사용 public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int ..

반응형