본문 바로가기

백준알고리즘9

[Java]백준 1978번 :: 소수 찾기 백준 온라인 저지 1978번 '소수 찾기' Java 알고리즘 문제풀이 풀이 소수찾기 문제이다. 이 문제는 입력한 숫자가 소수인지를 판단하는데 각각의 수가 소수인지 판단을 하고 소수이면 count값을 증가시키면 된다. 소수의 특징은 1과 자신만을 약수로 가진다는 점이다. 간단하게 풀 수 있는데 입력받은 숫자가 만약에 자신의 수 이외에 나머지 값을 0으로 가진다면 소수가 아니다. 이 점을 이용하면 된다. 이런 부류의 문제의 심화버전은 에라토스테네스의 체 알고리즘을 이용해야한다. import java.io.*; import java.util.*; public class Beak1978 { public static void main(String[] args) throws IOException { Buffered.. 2018. 12. 27.
[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]백준 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.