Coding Test/Java Coding Test
[프로그래머스 / 자바] - 배열 비교하기
by nam_ji
2023. 12. 16.
배열 비교하기
문제
- 정수 배열 arr1과 arr2가 매개변수로 주어집니다.
- 배열의 길이가 긴 쪽이 더 크고,
- 배열의 길이가 같다면 각 배열의 원소의 합을 비교하여
arr1이 크다면 1, 같다면 0, arr2가 크다면 -1을 출력하는 문제입니다.
테스트 (이클립스)
- if문을 이용하여 arr1과 arr2의 길이가 같을 경우 if문 안에서 for문 이용하여 arr1과 arr2 원소의 합을 각각 num1과 num2에 담습니다.
- 그 값들을 또 한번 if문을 사용하여 값을 비교하고 num1이 더 클 경우 1을 같을 경우 0을 arr2의 값이 더 클 경우 -1을 반환하도록 하고
- else if를 이용하여 arr1과 arr2의 길이를 비교하여 arr1의 길이가 더 클 경우 1을 아닐 경우 -1을 반환하도록 문제를 풀었습니다.
- 삼항 연산자를 이용한 풀이도 있습니다.
package com.namji.codingtest;
public class ComparingArrays {
public static void main(String[] args) {
/*
* 정수 배열 arr1, arr2가 매개변수로 주어집니다.
* 배열의 길이가 긴 쪽이 더 큽니다.
* 배열의 길이가 같다면 각 배열의 원소의 합을 비교하여
* arr1이크다면 1, 같다면 0, arr2가 크다면 -1을 출력하는 문제입니다.
* [49, 13], [70, 11, 2] > -1
* [100, 17, 84, 1], [55, 12, 65, 36] > 1
* [1, 2, 3, 4, 5], [3, 3, 3, 3, 3] > 0
*/
int[] arr1 = {100, 17, 84, 1};
int[] arr2 = {55, 12, 65, 36};
int num1 = 0;
int num2 = 0;
// if (arr1.length == arr2.length) {
// for (int i = 0; i < arr1.length; i++) {
// num1 += arr1[i];
// num2 += arr2[i];
// }
// if (num1 > num2) {
// System.out.println(1);
// } else if (num1 < num2) {
// System.out.println(-1);
// } else {
// System.out.println(0);
// }
// } else if (arr1.length > arr2.length) {
// System.out.println(1);
// } else {
// System.out.println(-1);
// }
for (int i = 0; i < arr1.length; i++) {
num1 += arr1[i];
num2 += arr2[i];
}
int number = (num1 > num2 ? 1 : num1 < num2 ? -1 : 0);
// System.out.println(arr1.length == arr2.length ? (num1 > num2 ? 1 : num1 < num2 ? -1 : 0) : arr1.length > arr2.length ? 1 : -1);
System.out.println(arr1.length == arr2.length ? number : arr1.length > arr2.length ? 1 : -1);
}
}
프로그래머스 코드