본문 바로가기

알고리즘24

[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.
[Java]백준 4344번 :: 평균은 넘겠지 문제 대학생 새내기들의 90%는 자신이 반에서 평균을 넘는다고 생각한다. 이걸 깨야한다. 테스트 케이스 개수를 입력받고 둘째줄 부터는 학생들의 점수가 입력된다. 입력 첫째 줄에는 테스트케이스의 개수 C가 주어진다. 둘째 줄부터 각 테스트케이스마다 학생의 수 N(1 ≤ N ≤ 1000, N은 정수)이 첫 수로 주어지고, 이어서 N명의 점수가 주어진다. 점수는 0보다 크거나 같고, 100보다 작거나 같은 정수이다. 문제풀이 * Java 언어로 구현했습니다. 간단한 문제에 속한다. 이번에도 Time out문제로 Scanner가 아닌 BufferedReader, BufferedWriter를 이용해서 입력값을 받는다. 사용자가 입력한 테스트 케이스는 trim()을 이용해 n값을 받고, 두번째 줄부터 입력한 학생들.. 2018. 7. 5.
[Java]백준 15552 :: 빠른 A+B 문제 테스트 케이스 갯수 n만큼 사용자에게 입력받은 두 정수 A, B의 합을 순서대로 출력한다. 입력 첫 줄에 테스트케이스의 개수 T가 주어진다. T는 최대 1,000,000이다. 다음 T줄에는 각각 두 정수 A와 B가 주어진다. A와 B는 1 이상, 1,000 이하이다. 문제풀이 * Java 언어로 구현했습니다. 이 문제는 Scanner로 풀었으면 정말 간단하게 풀었을 문제다. 그러나 테스트 케이스가 만약에 작다면 Scanner을 사용했을 때 시간상 문제가 없겠지만 1,000개 10,000개가 넘어간다면 Scanner을 10,000번 부르는 것이므로 성능상 문제가 생긴다. 이때 Buffer을 이용해서 문제를 푼다. Buffere에 n값을 입력받는데 trim()을 이용해서 Buffer에서 잘라낸다. (n.. 2018. 7. 5.
[Java]백준 2448번 :: 별 찍기 - 11 문제 별찍는 규칙을 유추한 뒤에 별을 찍는다. 입력 첫째 줄에 N이 주어진다. (사용자 입력) n은 항상 3*2^k수이다. 출력 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 * * * ***** * * * * * * ***** ***** * * * * * * ***** ***** * * * * * * * * * * * * ***** ***** ***** ***** * * * * * * ***** ***** * * * * * * * * * * * * ***** ***** ***** ***** * * * * * * * * * * * * ***** ***** ***** ***** * * * * * * * * * * * * * * * * * *.. 2018. 7. 5.