본문 바로가기

Algorithm/Java28

[Java]백준 2775번 :: 부녀회장이 될테야 백준 온라인 저지 2775번 '부녀회장이 될테야' Java 알고리즘 문제풀이 풀이 문제를 보고 연습장에 써보면 피보나치 수열문제와 유사하다는 것을 눈치챌 수 있다. 바로 재귀함수를 이용하면 쉽게풀리는 문제다. 만약 2층 2호를 구한다면 2층 2호의 값은 2층 1호의 값과 1층 2호 값을 더한 것이라는 것을 알 수 있다. import java.util.Scanner; public class java_2775 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int num = sc.nextInt(); for (int i = 0; i < num; i++) { int k = sc.nextInt(); int n = sc... 2018. 12. 27.
[Java]백준 1157번 :: 단어 공부 백준 온라인 저지 1157번 '단어 공부' Java 알고리즘 문제풀이 풀이 이 문제에서는 아스키코드의 int값을 이용하면 빠르게 해결할 수 있다. 그리고 이 문제에서 처음 전제조건에 대문자와 소문자를 구별하지 않는다. 그리고 출력때 가장 많이 사용된 알파벳은 대문자로 출력하므로 사용자가 소문자로 입력을 하던지 대문자를 입력을 하던지에 관계없이 string에 모두 대문자로 변환하여 저장해야한다. 반복문에서 cnt라는 배열을 생성했다. 이 배열에 각 알파벳이 문장에 몇개 있는지에 대해 count값을 저장하고, max값과 비교하여 가장 많이 포함하는 문자를 result에 담는다. 그런데, 2개의 알파벳의 max값이 같다면 '?' 물음표를 출력한다. import java.util.Scanner; public c.. 2018. 12. 25.
[Java]백준 2675번 :: 문자열 반복 백준 온라인 저지 2675번 '문자열 반복' Java 알고리즘 문제풀이 풀이 이 문제 역시 문자열을 사용하는 함수를 연습한다는 점에 의미를 두는 문제이다. 정말 쉬운 문제다. import java.util.Scanner; public class java_2675 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int num = sc.nextInt(); for (int i = 0; i < num; i++) { int cnt = sc.nextInt(); String str = sc.nextLine(); String result = ""; for (int j = 0; j < str.length(); j++) { fo.. 2018. 12. 25.
[Java]백준 11654번 :: 아스키 코드 백준 온라인 저지 11654번 '아스키 코드' Java 알고리즘 문제풀이 풀이 이 문제에서는 문자열 관련 문제가 나오기 전에 Java가 제공하는 기본적인 함수를 사용해 본다는 것에 의미를 두고 연습하면 된다. import java.util.Scanner; public class java_11654 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int c = sc.next().charAt(0); System.out.println(c); sc.close(); } } 2018. 12. 25.
[Java]백준 8958번 :: OX퀴즈 백준 온라인 저지 1992번 'OX퀴즈' Java 알고리즘 문제풀이 풀이 정말 간단한 문제다. 오랜만에 알고리즘을 푸는데 어려운 문제를 풀려고 하니 의욕이 나질 않아서 백준 온라인 저지 사이트에 단계별 순서대로 푸는데 1차원 배열사용하기 부분에 있는 문제이다. 먼저 String에 사용자의 입력을 받는다. 그 이후에는 한 글자씩 받는다 이때 문자가 O와 같다면 count값을 증가시킨다. 연속하는 경우도 처리해야하니 count값을 사용한다. 연속되지 않는다면 count값을 0으로 초기화 시킨다. import java.util.Scanner; public class java_8958 { public static void main(String[] args) { Scanner sc = new Scanner(Sys.. 2018. 12. 25.
[Java]백준 1780번 :: 종이의 개수 백준 온라인 저지 1780번 '종이의 개수' Java 알고리즘 문제풀이 풀이 이 문제는 분할정복(Divide and Conquer)로 풀면된다. 분할정복은 정말 쉬운 개념이다. (유사한 분할정복 문제 풀기 -> 백준 1992번 쿼드트리 https://developer-mac.tistory.com/37) 단순하게 복잡한 문제를 해결할 수 있는 작은단위로 나누어서 처리한 후 이것을 합치면 된다. 이 문제에서 3등분을 한다고 생각하면 된다. 먼저 입력을 받고 divide 함수에서 재귀적으로 동작한 후 if 문을 두어 모든 원소가 0이거나 1일때 빠져나오게 하면 된다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputS.. 2018. 10. 28.