본문 바로가기
반응형

알고리즘39

백준 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.
백준 2884번 알람시계 자바 java 문제 풀이 입력한 시간에서 45분을 뺐을때 분이 양수 (0분 이상) 라면 그대로 출력 분이 음수 (0 미만)라면 시간을 -1을 하고 분을 60분을 더하고 만약 시간이 음수가 된다면 (0 미만)일 때 시간을 24시간을 더하고 출력을 해서 해결하였다 코드 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int h = sc.nextInt(); int m = sc.nextInt(); m = m - 45; if (m >= 0) { System.out.printf("%d %d", h, m); return; } h = h - 1; m = m + .. 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.
백준 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.
백준 1018번 체스판 다시 칠하기 자바 java 문제 풀이 입력한 보드와 8 * 8 체스판 2개와 비교 (BWBWBWBW 시작하는 것, WBWBWBWB 시작하는 것)를 해서 최솟값을 출력해서 풀었다 코드 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int N = sc.nextInt(); int M = sc.nextInt(); String[] board = new String[N]; int min = 64; int count; sc.nextLine(); for (int i = 0; i < N; i++) { board[i] = sc.nextLine(); } //8 * 8 잘라서 최.. 2021. 4. 9.
반응형