"꾸준하고 완벽한 한 걸음"

practice 123

[백준 15780] 멀티탭 충분하니? [Java]

문제https://www.acmicpc.net/problem/15780 풀이K개의 멀티탭으로 N명이 모두 코드를 꽂을 수 있는지 확인하는 문제다.멀티탭에 코드를 연속으로 꽂으면 안되기 때문에 멑티탭 2구당 1명만 꽂을 수 있다.이를 멀티탭 길이에 맞게 계산하면 된다. // Solve for (int a : A) { N -= (a + 1) / 2; }만약 N이 0이하라면 N명은 모두 코드를 꽂았다는 것을 의미한다. // Output System.out.println(N 풀이 시간≤ 2m소스코드https://github.com/rogi-rogi/problem-solving/blob/main/baekjoon-online-judg..

[백준 30979] 유치원생 파댕이 돌보기 [Java]

문제https://www.acmicpc.net/problem/30979 풀이F의 합이 T이상인지 확인하는 문제다.T이상일 때 파댕이가 울지않기 때문이다. final int fSum = Arrays.stream(br.readLine().split(" ")).mapToInt(Integer::parseInt).sum(); // Solve & Output System.out.println(T 풀이 시간≤ 2m소스코드https://github.com/rogi-rogi/problem-solving/blob/main/baekjoon-online-judge/practice/30979.java problem-solving/baekjoon-online-judge/practice/309..

[백준 25594] HG 음성기호 [Java]

문제https://www.acmicpc.net/problem/25594 풀이문자열 S가 사전에 주어진 매핑표의 문자열들로 구성되어있는지 확인하는 문제다.직관적인 매핑을 위해 Map으로 매핑 테이블을 만들었다.단순히 문자열 배열로 만든 후 아스키코드값을 인덱스처럼 활용하는 방법도 있다. // Solve Map map = new HashMap(); map.put('a', "aespa"); map.put('b', "baekjoon"); map.put('c', "cau"); map.put('d', "debug"); map.put('e', "edge"); map.put('f', "firefox"); m..

[백준 01408] 24 [Java]

문제https://www.acmicpc.net/problem/1408 풀이두 시간대가 주어졌을 때 시간의 차를 계산하는 문제다.시작 시간과 종료 시간은 최대 48시간 차이가 날 수 있다. 이는 LocalTime.parse로 충분하다. // Input LocalTime start = LocalTime.parse(br.readLine()); LocalTime end = LocalTime.parse(br.readLine());시작 시간과 종료 시간의 차가 음수라면, 종료 시간은 시작 시간의 다음 날을 의미한다.24시간을 더한 후 올바른 차를 계산해서 출력하자. // Solve int totalSec = (int) Duration.between(st..

[백준 32184] 디미고에 가고 싶어! [Java]

문제https://www.acmicpc.net/problem/32184 풀이페이지 A ~ B를 전부 촬영한다고 할 때 최소 촬영 횟수를 구하는 문제다.A가 짝수이고, B가 홀수일 때, 양 끝을 분리해서 촬영해야 하므로 필요한 최소 촬영 횟수는 $\frac{B - A}{2} + 2$이다. 이 외에는 겹쳐서 촬영이 되기 때문에 $\frac{B-A}{2} + 1$이 된다. // Solve & Output if (A % 2 == 0 && B % 2 == 1) { System.out.println((B - A) / 2 + 2); } else { System.out.println((B - A) / 2 + 1); } }}소..

[백준 32154] SUAPC 2024 Winter [Java]

문제https://www.acmicpc.net/problem/32154 풀이문제의 주어진 스코어보드에 대해 등수에 맞는 팀의 대회 기록을 출력하면 된다.문제에서 주어지는 스코어보드를 데이터화하자.import java.io.*;public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); // Input final int N = Integer.parseInt(br.readLine()); // Solve String[][] boar..

[백준 32344] 유물 발굴 [Java]

문제https://www.acmicpc.net/problem/32344 풀이유물들의 위치가 주어졌을 때 동일한 번호의 유물들을 감싸는 최대 크기의 직사각형을 구해야 한다.이중에서 가장 먼저 발굴하는 유물의 번호와 예상 크기를 구해야 한다.이를 위해서는 번호가 동일한 유물들의 위치에 대해 최소/최대값을 기록해야 한다. Arrays.fill(minRow, R + 1); Arrays.fill(minCol, C + 1); for (int i = 0; i 이후 반복문을 통해 최대 크기의 직사각형을 구해주고, 만약 유물의 번호가 작은 유물이 있다면 유물 번호를 변경하자. long resId = -1, resArea = -1; for (int id = 1..

[백준 31067] 다오의 경주 대회 [Java]

문제https://www.acmicpc.net/problem/31067 풀이주어진 배열 A의 모든 요소가 서로 다른 오름차순 배열로 만들기 위한 최소 횟수를 구하는 문제다.오름차순을 만들기 위해 요소에 K만큼 더할 수 있다. // Solve int cnt = 0; for (int i = 0; i 만약 조건에 부합하는 배열을 만들 수 없다면 결과를 -1로 변경하고 탐색을 중단하자. } else { cnt = -1; break; } }소스코드https://github.com/rogi-rogi/problem-solving/blob/main/baekjoon-online-..

[백준 02139] 나는 너가 살아온 날을 알고 있다 [Java]

문제https://www.acmicpc.net/problem/2139 풀이주어진 일/월/연도에 대해 동일 연도의 1월 1일부터의 차를 구하면 된다.원래 문제 의도는 윤년에 따라 일수를 다르게 계산하는 문제지만, 이번에는 새롭게 풀어봤다.두 날짜 객체를 생성 후 날짜의 차를 구하는 메서드를 사용해서 풀이했다. LocalDate date1 = LocalDate.of(input[2], 1, 1); LocalDate date2 = LocalDate.of(input[2], input[1], input[0]); // Solve & Output System.out.println(ChronoUnit.DAYS.between(date1, dat..

[백준 26265] 멘토와 멘티 [Java]

문제https://www.acmicpc.net/problem/26265 풀이주어진 N개의 멘토-멘티 쌍에 대해 멘토를 기준으로 사전순정렬, 만약 동일하다면 멘티를 기준으로 역사전순 정렬하면 된다. // Solve list.sort((s1, s2) -> { int cmp = s1[0].compareTo(s2[0]); if (cmp == 0) { return -s1[1].compareTo(s2[1]); } return cmp; });소스코드https://github.com/rogi-rogi/problem-solving/blob/main/baekjoon-online-j..