함수 인자로 왜 new ArrayList()만 쓰고 List는 안 써도 될까? ✅ 핵심 결론여기서 new ArrayList()는 익숙한 축약 문법이에요.타입 생략이 가능한 이유는, 자바 컴파일러가 타입 추론(type inference) 을 해주기 때문입니다. ✅ 정리표현 의미new ArrayList()자바 7 이상에서 타입 생략 가능한 축약 문법왜 생략 가능?메서드의 매개변수 타입을 보고 자바가 자동 추론 (type inference) 참고로... 변수에 직접 할당하는 경우도 마찬가지!List temp = new ArrayList(); // OK! 컴파일러가 타입 추론
분류 전체보기
❓ 왜 System.out.println(uniqueArr); 이렇게 하면 배열 내용이 안 보이고,이상한 문자들이 나올까? ✅ 이유: 배열은 객체지만, toString()이 오버라이딩되어 있지 않기 때문!자바에서 System.out.println(객체)는 내부적으로 객체.toString()을 호출합니다.그런데 배열은 Object를 상속하지만,toString() 메서드를 오버라이딩하지 않아서 "클래스명@해시코드" 형식으로 출력됩니다.📌 그래서 int[] → [I@abc123📌 String[] → [Ljava.lang.String;@abc123✅ 해결 방법System.out.println(Arrays.toString(uniqueArr));System.out.println(Arrays.deepToStrin..
Array Vs ListList : 객체, 동적 배열, Integer 객체의 주소를 저장Array : 객체, 정적 배열, 값을 직접 저장 ✅ 정리배열에 int를 쓸 수 있는 이유?배열은 제네릭이 아니라 JVM이 기본형을 직접 처리할 수 있음리스트에 int를 못 쓰는 이유?제네릭은 객체 타입만 받기 때문에 Integer 같은 참조형만 가능함불편하지 않나요?자바가 자동으로 int ↔ Integer 변환해줌 (Auto-boxing)“배열도 객체고, 배열에도 Integer를 넣을 수 있는데,왜 실제 개발에서는 보통 int[]를 쓰지 Integer[]를 잘 안 쓸까?” ✅ 답변배열에도 Integer[] 쓸 수 있는데 왜 잘 안 쓰나요?int[]가 성능과 메모리에서 훨씬 유리하기 때문이에요.Integer[]는 언제..
✅ 간단 정리이름자료형길이/크기 확인 방법currentList (예: ArrayList)size() 메서드 사용nums배열 (int[]).length 속성 사용 🔍 왜 다르게 써야 할까?1. current는 List → 객체 기반이라 메서드List current = new ArrayList(); int len = current.size(); // ✅ 메서드 ArrayList나 LinkedList 같은 리스트는 객체 지향 클래스그래서 크기를 알려면 메서드 size()를 호출괄호 ()가 붙는 건 함수 호출의 특징 2. nums는 배열 → 배열은 속성int[] nums = {1, 2, 3}; int len = nums.length; // ✅ 속성 배열은 자바에서 기본 타입 (primitive type..

1. "내가 하는 일"을 한 문장으로 정리함수 하나가 어떤 역할을 하는지 명확히 정의하세요.예시:generatePermutations() → "현재 상태에서 가능한 모든 순열을 만들어낸다"2. 기저 조건(Base Case)을 먼저 정하기재귀가 끝나야 할 조건을 먼저 만들어야 무한 루프에 빠지지 않아요.예시:if (current.size() == nums.length) { System.out.println(current); return; }3. "작은 문제로 줄이는 방법"을 생각하기--->이걸 작은 함수로 정의한다(한개씩 넣어주기)재귀는 항상 문제를 조금 더 작게 나눠서 해결해요.예시:[1, 2, 3]의 순열을 만들기 위해, 1을 고정하고 나머지 [2,3]의 순열을 재귀로 만든다4. 백트래킹(backtra..