본문 바로가기
반응형

알고리즘/백준26

백준 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.
백준 7568번 덩치 자바 java 문제 풀이 2중 for문으로 모든 경우의 수를 비교해서 덩치가 더 큰 경우에 카운트를 올려서 해결하였다 코드 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int N = sc.nextInt(); int[] x = new int[N]; int[] y = new int[N]; int[] grade = new int[N]; for (int i = 0; i < N; i++) { x[i] = sc.nextInt(); y[i] = sc.nextInt(); } for (int i = 0; i < N - 1; i++) { for (int j = .. 2021. 4. 9.
반응형