💡 핵심 요약 (TL;DR)
사용자로부터 정수 10개를 입력받은 후 3의 배수만 골라서 출력하기의 동작 원리를 이해하고 실제 프로젝트에 적용하기 위한 실무 가이드다.
* 배열을 두 개를 생성하면 메모리 낭비가 생긴다. 변수가 가능하다면 객체대신 변수를 사용하는 것이 메모리효율에 좋다.
문제 정수 10개를 입력받아 배열에 저장한 후, 배열을 검색하여 3의 배수만 골라서 출력하시오. 3의 배수가 없을 경우 “해당사항 없음” 메세지를 출력 하시오.
내코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 public static void main (String[] args) { int inputTen [] = new int [10 ]; Scanner sc = new Scanner (System.in); System.out.print("10개의 정수를 입력하세요" ); for (int i = 0 ; i < inputTen.length; i++) { inputTen[i] = sc.nextInt(); } ArrayList <Integer> result = new ArrayList <>(); for (int i = 0 ; i < inputTen.length; i++){ if (inputTen[i]%3 == 0 ){ result.add(inputTen[i]); } } if (result.size() > 0 ){ for (Integer i : result){ System.out.println(i); } }else { System.out.println("해당사항 없음" ); } }
배열을 두 개를 생성하면 메모리 낭비가 생긴다. 변수가 가능하다면 객체대신 변수를 사용하는 것이 메모리효율에 좋다.
변수인 int는 4바이트인데 객체는 최소 4바이트 이상이니까.
따라서 이 문제에선 변수를 쓰는 것이 속도도 빠르다. 왜냐면 메모리를 만드는 시간이 드니까
강사님코드
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 public static void main (String[] args) { int inputTen [] = new int [10 ]; Scanner sc = new Scanner (System.in); System.out.print("10개의 정수를 입력하세요" ); for (int i = 0 ; i < inputTen.length; i++) { inputTen[i] = sc.nextInt(); } int ck = 0 ; for (int i = 0 ;i<inputTen.length;i++){ if (inputTen[i]%3 == 0 ){ System.out.println("3의 배수 :" +inputTen[i]); }else { ck++; if (ck ==10 ){ System.out.println("해당사항 없음" ); } } } }
#TIL ITWILL(JAVA)