Backend
home
🔢

[백준] 짝수를 찾아라

생성일
2025/03/25 07:50
태그
BaekJoon
게시일
2025/03/25
최종 편집 일시
2025/03/25 07:57

문제

해결 방안 고민

7개의 자연수, 짝수인 자연수의 합, 짝수들의 최솟값 이라는 조건을 잘 활용하면 된다.

해결 방법

배열을 활용하여 풀이하는 방법과 배열을 활용하지 않고 풀이하는 방법이 있다.
누적 합과 최솟값을 활용하여 로직을 구현하면 된다.

코드

배열 활용
package algo250325; import java.io.*; import java.util.StringTokenizer; // 백준 - 짝수를 찾아라 (브론즈 3) public class Baek3058 { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int t = Integer.parseInt(br.readLine()); // t번 순회 for (int i = 0; i < t; i++) { StringTokenizer st = new StringTokenizer(br.readLine(), " "); int[] arr = new int[7]; int sum = 0; int min = Integer.MAX_VALUE; for (int j = 0; j < 7; j++) { arr[j] = Integer.parseInt(st.nextToken()); if (min > arr[j] && arr[j] % 2 == 0) { min = arr[j]; // 최솟값 구분 } // 짝수 구분 후 누적 합 구하기 if (arr[j] % 2 == 0) { sum += arr[j]; } } System.out.println(sum + " " + min); } } }
Java
복사
배열 활용 X
package algo250325; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; import java.util.Arrays; // 백준 - 짝수를 찾아라 (브론즈 3) public class Baek3058_2 { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int t = Integer.parseInt(br.readLine()); // t번 순회 for (int i = 0; i < t; i++) { StringTokenizer st = new StringTokenizer(br.readLine(), " "); int sum = 0; int min = Integer.MAX_VALUE; for (int j = 0; j < 7; j++) { int num = Integer.parseInt(st.nextToken()); // 짝수 구분 후 누적 합 구하기 if (num % 2 == 0) { sum += num; } if (min > num && num % 2 == 0) { min = num; } } System.out.println(sum + " " + min); } } }
Java
복사

정리

성능은 배열을 활용하지 않았을 때가 더 빠르다.
배열을 생성한 만큼 시간이 더 걸린다는 점을 고려하여 추후 코드 작성 시 참고해야 한다.