본문 바로가기
반응형

Java39

백준 1065번 한수 자바 java 문제 풀이 정수의 각 자리 수가 등차수열로 이루어지면 한수 예) 1 ~ 99, 111 (0), 123 (1), 135 (2), 147 (3), 159 (4), 210 (1).... 1 ~ 99 까지는 한수를 더해주고 세 자리 숫자부터 함수를 만들어서 처리를 함 첫째 자릿수와 둘째 자릿수를 계산을 해서 증감 값을 찾아내고 그다음 셋째 자리 수와 둘째 자리 수를 비교해서 한수 값을 찾아내는 것으로 해결을 하였다 코드 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int N = sc.nextInt(); //한자리, 두자리 수는 모두 한수.. 2021. 4. 12.
백준 4673번 셀프 넘버 자바 java 문제 풀이 10,000 보다 작은 셀프 넘버를 구하기 위해서 10000번 정도 for문을 돌리면서 길이가 10000인 배열을 선언하고 생성자를 구하는 함수를 만들어 해당 값을 리턴해서 해당 배열에 인덱스에 집어넣고 카운트를 높이고 카운트 0만 출력(셀프 넘버)을 하여 해결하였다 코드 public class Main { public static void main(String[] args) { int[] selfNumbers = new int[10000]; for (int i = 1; i < 10000; i++) { selfNumbers[generator(i)]++; } for (int i = 1; i < selfNumbers.length; i++) { if (selfNumbers[i] == 0) { Sys.. 2021. 4. 11.
백준 15552번 빠른 A+B 자바 java 문제 풀이 시간제한이 있어서 주로 사용하던 Scanner와 출력하는 방식으로는 시간 초과가 돼버려서 입력 클래스인 scanner 대신 BufferedReader를 사용하고 String 문자열을 만들 때 바로 출력하는 대신에 StringBuilder로 한꺼번에 문자열을 만들고 마지막에 BufferedWriter 클래스를 이용해서 출력하는 것으로 해결을 하였다 코드 import java.io.*; import java.util.StringTokenizer; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(S.. 2021. 4. 11.
백준 1110번 더하기 사이클 자바 java 문제 풀이 1 ~ 9까지 1글자인 숫자는 1 -> 11, 2 -> 22, 3 -> 33 .. 9 -> 99 와 같이 11을 곱하는 것으로 처리를 하였고 각 자리수를 더하기 = (10의 자릿수는 10을 나눈 값) + (1의 자릿수는 10으로 나눈 나머지 값) 새로운 수 = (주어진 수를 10으로 나눈 나머지 값에서 * 10) + (각 자릿수 더한 값을 10으로 나눈 나머지 값) count를 세면서 새로운 수가 N값과 같으면 while을 탈출하고 count를 출력하게끔 해서 해결하였다 코드 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in);.. 2021. 4. 10.
선택 정렬 (selection sort) 자바 선택 정렬이란? 값들 중에서 가장 최솟값을 찾아서 맨 왼쪽으로 채워가면서 정렬하는 방법 예제 : 오름차순으로 선택정렬 10 5 3 1 7 - 시작 10 5 3 1 7 - 최소값 1을 찾음 1 5 3 10 7 - 1과 첫번째 값인 10을 교환 후 패스 1 5 3 10 7 - 최소값 3을 찾음 (첫번째 값은 제외하고 찾음) 1 3 5 10 7 - 3과 두번째 값인 5를 교환 후 패스 (첫번째 값은 제외하고 교환) 1 3 5 10 7 - 최소값 5를 찾음 1 3 5 10 7 - 세번째에 있음으로 교환없이 패스 1 3 5 10 7 - 최소값 7을 찾음 1 3 5 7 10 - 최소값 7과 10을 교환 후 정렬 완료 특징 장점 구현이 간단하다 단점 데이터가 클수록 느려짐 시간 복잡도 최악 시간 복잡도 : O(n^2.. 2021. 4. 10.
백준 1436번 영화감독 숌 자바 java 문제 풀이 연속적으로 666을 포함하는 숫자 중에 작은 숫자가 차례대로 나와야 한다 666 → 1666 → 2666 → 3666 → 4666 → 5666 → 6666 이 아닌 6660 → 6661 → 6662 가 되어야 한다 while문으로 666부터 1씩 더하면서 contains 함수로 666이 포함이 되면 count를 추가하는 방식으로 해결하였다 코드 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int N = sc.nextInt(); int count = 0; int num = 666; while (count < N) { if.. 2021. 4. 10.
반응형