투케이2K

222. (java/자바) 알고리즘 : 음양 더하기 - for 문 , Arrays.stream.sum 스트림 합계 본문

Java

222. (java/자바) 알고리즘 : 음양 더하기 - for 문 , Arrays.stream.sum 스트림 합계

투케이2K 2021. 7. 29. 08:46

[개발 환경 설정]

개발 툴 : Eclipse

개발 언어 : Java


[소스 코드]

package ex6;

import java.util.Arrays;

public class MainActivity3 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		System.out.println("[Program Start]");
		System.out.println("");
		
		/**
		 * [음양 더하기]
		 * 1. 어떤 정수들이 있습니다. 이 정수들의 절댓값을 차례대로 담은 정수 배열 absolutes와 
		 *    이 정수들의 부호를 차례대로 담은 불리언 배열 signs가 매개변수로 주어집니다
		 * 2. signs의 길이는 absolutes의 길이와 같습니다   
		 * 3. 절대값 정수에 true일 경우 +, false일 경우 - 정수를 만든후 결과 값을 리턴하세요
		 * 4. 입출력 예시 : 
		 *     - absolutes = [4,7,12] / signs = [true,false,true] / result = 9
		 *     - absolutes = [1,2,3] / signs = [false,false,true] / result = 0
		 * 5. 프로그래머스 사이트 : https://programmers.co.kr/learn/courses/30/lessons/76501
		 * */
		
		// 초기 변수 선언 실시
		int int_arr[] = {4, 7, 12}; // [1 번]
		//int int_arr[] = {1, 2, 3}; // [2 번]
		
		boolean boolean_arr[] = {true, false, true}; // [1 번]
		//boolean boolean_arr[] = {false, false, true}; // [2 번]
				
		// 메소드 호출 실시
		System.out.println("결과 : " + solution(int_arr, boolean_arr));
		

	}// 메인 종료
	
	public static int solution(int[] absolutes, boolean[] signs) {
		// 리턴 결과를 반환할 변수 선언 실시
		int result = 0;
		
		// 인풋값으로 들어온 데이터 확인 실시
		System.out.println("absolutes : " + Arrays.toString(absolutes));
		System.out.println("signs : " + Arrays.toString(signs));
		System.out.println("");
				
		// for 문을 수행하면서 연산 수행 실시 
		/**
		 * [세부 설명]
		 * 1. 문제에서 두배열 길이가 같다고 나와있으므로 for 문을 하나만 사용합니다
		 * 2. 절대 값으로 배열 데이터가 들어있으므로 (양수라 판단) >> signs 배열 값이 false 일경우만 음수처리를 실시합니다 
		 * */		
		for (int i=0; i<absolutes.length; i++) {
			if(signs[i] == false) absolutes[i] = -absolutes[i]; // 특정 배열값을 - 음수 처리 실시 			
		}
		System.out.println("absolutes change : " + Arrays.toString(absolutes));
		System.out.println("");
		result = Arrays.stream(absolutes).sum(); // 스트림을 사용해서 배열 합계 연산 결과 반환		
		
		// return 리턴 결과 반환
		return result;
	}

}// 클래스 종료

[결과 출력]


[요약 설명]

/**

* [음양 더하기]

* 1. 어떤 정수들이 있습니다. 이 정수들의 절댓값을 차례대로 담은 정수 배열 absolutes와

*    이 정수들의 부호를 차례대로 담은 불리언 배열 signs가 매개변수로 주어집니다

* 2. signs의 길이는 absolutes의 길이와 같습니다

* 3. 절대값 정수에 true일 경우 +, false일 경우 - 정수를 만든후 결과 값을 리턴하세요

* 4. 입출력 예시 :

*    - absolutes = [4,7,12] / signs = [true,false,true] / result = 9

*    - absolutes = [1,2,3] / signs = [false,false,true] / result = 0

* 5. 프로그래머스 사이트 : https://programmers.co.kr/learn/courses/30/lessons/76501

* */


 

반응형
Comments