본문 바로가기
프로그래밍/Java

[Java / 자바 기초 / 자바의 정석] -와 +가 쌍으로 이루어진 값의 최대값 출력

by Mr.noobiest 2024. 1. 5.

JAVA

자바 문제

 

List가 [-1 , 1 , -3 , 3 , 5 , 6 , 8] 일때

조건 -와 +가 쌍으로 이루어진 값이 -> 1과 3일때,
최대값은 : 3이다.

 


 

 

 

위 조건을 만족하는 자바 코드

 

public class Pair_List_Maximum
{
    static void pairsInt(int[] A){

        //-값 +값이 서로 쌍인지 확인하고 쌍일경우들의 값들중 최대값 출력하기
        //배열이 저장될 임의의 정수 only 배열 생성
        ArrayList<Integer> arrList = new ArrayList<Integer>();
        int n = A.length;

        HashMap<Integer,Integer> hash_table = new HashMap<Integer,Integer>();
        //정수 2개로 이루어진 HashMap 생성

        for (int i = 0; i < n; i++)
        {
            hash_table.put(A[i],1);
        }

        System.out.print("쌍으로 이루어진 값들: ");
        //n<- 입력배열 길이
        for (int i = 0; i < n; i++)
        {
            //containsKey-> Map에서 해당 값이 있는지 여부 확인후 있으면 true 없으면 false 반환
            if((hash_table.containsKey(-1*A[i])) && (hash_table.get(-1*A[i])==1))
            {
                if (A[i]<= 0){
                    A[i]*=-1;
                }
                //최대값 구하기
                arrList.add(A[i]);
                hash_table.put(A[i],0);
                hash_table.put(-1*A[i],0);
            }
        }
        System.out.println(arrList);
        if(arrList.size()!=0) {
            int max= Collections.max(arrList);
            System.out.println("최대값 : " + max+"\n");

        }else {
            System.out.println("쌍으로 이루어진 값이 없습니다"+"\n");}
    }
    
    public static void main(String[] args) {
        int[] A={1, 2, 3, -4};
        pairsInt(A);
        int[] B= {3, 2, -2, 5, -3,3,-3,3};
        pairsInt(B);
        int[] C= {1, 1, 2, -1, 2, -1};
        pairsInt(C);
    }
}

 

 

 


 

실행결과

쌍으로 이루어진 값들: []
쌍으로 이루어진 값이 없습니다

쌍으로 이루어진 값들: [3, 2]
최대값 : 3

쌍으로 이루어진 값들: [1]
최대값 : 1

 

728x90
반응형