FIF's 코딩팩토리

자바 기초 NCS교육과정(13)-메소드 문제풀이 본문

Back-End/국비 NCS교과과정

자바 기초 NCS교육과정(13)-메소드 문제풀이

FIF 2019. 7. 10. 15:22
반응형

이번 시간은 문제풀이 시간 입니다.

코드를 바로 보지 마시고, 충분한 시간을 가지고 고민해 보세요!

생각하는 시간이 많을수록 실력은 향상됩니다.

 

 

Prob001_method.java

매개변수로 받은 두 정수형 배열의 내용을 결합하여 하나의 배열로 리터하는 
mergeArray() 메서드를 구현하시오.
[출력결과]
<< 두 배열을 합친 배열 내용 >>
1
2
3
4
5
10
20
30

 

 

 

 

 

 

 

 

 

 

 

 

 

public class Prob001_method {

	public static void main(String[] args) {
		int[] array1 = { 1, 2, 3, 4, 5 };
		int[] array2 = { 10, 20, 30 };
		int[] result = mergeArray(array1, array2);
		System.out.println("<< 두 배열을 합친 배열 내용 >>");
		for (int i = 0; i < result.length; i++) {
			System.out.println(result[i]);
		}
	}// end main()

	public static int[] mergeArray(int[] array1, int[] array2) {
		// 여기에서 구현하세요.
		 	int[] merge = new int[array1.length+array2.length];
		 	for(int i=0;i<array1.length;i++) {
		 		merge[i]=array1[i];
		 	}
		 	for(int i=array1.length;i<array1.length+array2.length;i++) {
		 		merge[i]=array2[i-array1.length];
		 	}
			return merge;
	}// end mergeArry()

}// end class

Prob002_method.java

   [출력결과]
    35276은 숫자입니다.
    2_8a은 문자입니다.

 

 

 

 

 

 

 

 

 

 

 

public class Prob002_method {
	public static void main(String[] args) {
		System.out.print("35276은 ");
		prnDisplay(numCheck("35276"));

		System.out.print("2_8a은 ");
		prnDisplay(numCheck("2_8a"));
	}// end main()

	public static boolean numCheck(String data) { // a35276
		// data값이 숫자면 true 아니면 false을 반환하는 로직 구현
		for (int i = 0; i < data.length(); i++) {
			char num = data.charAt(i);
			if (!(num >= '0' && num <= '9')) {
				return false;
			}
			
		}return true;

	}// end numCheck()

	public static void prnDisplay(boolean chk) {
		// chk값이 true이면 "숫자입니다."
		// chk값이 false이면 "문자입니다." 로 출력하는 로직구현
		if (chk) {
			System.out.println("숫자입니다.");
		} else {
			System.out.println("문자입니다.");
		}
	}// end prnDisplay()

}// end class

Prob003_method.java

data배열의 요소가 '_'이면 ' '으로 변경후 리턴하는
프로그램을 구현하시오.

 

 

 

 

 

 

 

 

 

 

 

public class Prob003_method {
	public static void main(String[] args) {
		char[] arr=new char[]{'j','a','v','a','_','j','s','p'};			
		System.out.println(process(arr)); //java jsp
		
		char[] loc=new char[]{'s','e','o','u','l','_','i','n','c','h','o','n'};
		System.out.println(process(loc));//seoul inchon

	}//end main()
	
	public static char[] process(char[] data){
		//data배열의 요소가 '_'이면 ' '으로 변경후 리턴하는
		//프로그램을 구현하시오.
		
		for(int i=0; i<data.length;i++){
			if(data[i]=='_')
				data[i]=' ';
		}
		return data;
	}//end process()

}//end class

Prob004_method.java

  <프로그램 실행결과>
  주어진 배열에서 3의 배수의 개수=> 6
  주어진 배열에서 3의 배수의 합=> 108

 

 

 

 

 

 

 

 

 

 

 

public class Prob004_method {

	public static void main(String[] args) {
		int[] data = { 1, 3, 5, 8, 9, 11, 15, 19, 18, 20, 30, 33, 31 };
		process(data);
	}

	public static void process(int[] data) {
		// 여기에 3의 배수의 개수와 합을 구하는 코드를 작성하세요.

		int cnt = 0; // 3의 배수 개수
		int sum = 0; // 3의 배수 합

		for (int i = 0; i < data.length; i++) {
			if (data[i] % 3 == 0) {
				cnt++;
				sum += data[i];
			}
		}

		System.out.println("주어진 배열에서 3의 배수의 개수=>" + cnt);
		System.out.println("주어진 배열에서 3의 배수의 합=>" + sum);
	}
}

Prob005_method.java

  <<프로그램 실행결과 >>
  2 or 5의 배수가 아닌 갯수 : 7
  2 or 5의 배수가 아닌 합계 : 107
 

 

 

 

 

 

 

 

 

 

 

 

public class Prob005_method {
	public static void main(String[] args) {
		int[] data = { 1, 3, 5, 8, 9, 11, 15, 19, 18, 20, 30, 33, 31 };
		result(data);
	}// end main()
	
	public static void result(int[] data){
		// 여기에 2 or5배수가 아닌 갯수와합계를 구하는 코드를 작성하세요.

				int cnt = 0;
				int sum = 0;

				for (int i = 0; i < data.length; i++) {
					if (data[i] % 2 != 0 && data[i] % 5 != 0) {
						cnt++;
						sum += data[i];
					}
				}
				
				System.out.println("2 or 5의 배수가 아닌 갯수 : "+cnt);
				System.out.println("2 or 5의 배수가 아닌 합계 : "+sum);
	}//end result
}// end class

 

 

Prob006_method.java

 [출력결과]
 내림 차순 결과
    31
22
16
11
10
9
    오름 차순 결과
9
10
11
16
22
31

 

 

 

 

 

 

 

 

 

 

 

public class Prob006_method {

	public static void main(String[] args) {
		int[] arr = { 10, 22, 9, 16, 11, 31 };

		int[] result1 = sort(arr, "desc");
		int[] result2 = sort(arr, "asc");
		System.out.println("내림 차순 결과");
		for (int i = 0; i < result1.length; i++) {
			System.out.println(result1[i]);
		}
		System.out.println("오름 차순 결과");
		for (int i = 0; i < result2.length; i++) {
			System.out.println(result2[i]);
		}
	}// end main( )

	private static int[] sort(int[] array, String orderby) {
		// 구현하시오.
		int temp;
		int[] sorted_Arr = array.clone();

		if (orderby.equals("desc")) {
			for (int i = 0; i < sorted_Arr.length; i++) {
				for (int j = 1; j < sorted_Arr.length; j++) {
					if (sorted_Arr[j - 1] < sorted_Arr[j]) {
						temp = sorted_Arr[j - 1];
						sorted_Arr[j - 1] = sorted_Arr[j];
						sorted_Arr[j] = temp;
					}
				}
			}
		}

		if (orderby.equals("asc")) {
			for (int i = 0; i < sorted_Arr.length; i++) {
				for (int j = 1; j < sorted_Arr.length; j++) {
					if (sorted_Arr[j - 1] > sorted_Arr[j]) {
						temp = sorted_Arr[j - 1];
						sorted_Arr[j - 1] = sorted_Arr[j];
						sorted_Arr[j] = temp;
					}
				}
			}

		}

		return sorted_Arr;
	}// end sort( )
}//end class
반응형
Comments