자바 문제
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
반응형
'프로그래밍 > Java' 카테고리의 다른 글
[Java / 자바의 정석 / Java 기초] 문자열 쉬프트하기 (0) | 2024.01.11 |
---|---|
[Java / Java의 정석 / 자바 기초] 문자열을 쉬프트 하기(+쉬프트한 문자열 비교하기) (1) | 2024.01.09 |
[Java/자바/자바의 정석] 정규표현식을 활용한 비밀번호 허용 여부 체크하는 법 (1) | 2023.12.30 |
[내가 이해하기 위한 용어정리] Restfull API란? (1) | 2023.12.26 |
[JAVA / 자바 / 자바 기초] 배열 랜덤 생성 + 랜덤하게 섞기 (0) | 2023.12.14 |