lang/java (7) 썸네일형 리스트형 재귀함수 이 문제에서 재귀함수를 주로 다루므로 오랜만에 재귀함수에 대해 다시 짚고 넘어가봤다!!! 함수가 호출되면 스택프레임이 스택에 push되고, 함수가 종료되면(return을 만나거나 함수 끝까지 돎) 스택프레임이 스택에서 pop 된다 제일 위에 있는 함수는 count==5라 return을 만나 함수가 종료되었고 나머지 함수들은 아직 func(count+1)까지만 수행해 함수의 끝까지 수행하지 않았으며 return을 만나지도 않았다. 즉, 함수가 종료된 상태가 아니기에 System.out.println("2")를 거쳐 함수 끝까지 수행시켜줘야 함수가 종료되어 pop될 수 있다. -> 이 과정을 겨치면 결론적으로 1이 5번 pop되고, 2가 5번 pop 된다 아래 블로그 바탕으로 이해한 걸 정리해보았다 http.. 이중배열 , 덱 ArrayList로 이중배열 만들기 -> ArrayList의 원소로서 다시 ArrayList을 사용하는 방식 ArrayList graph = new ArrayList(); for (int i = 0; i < n; i++) graph.add(new ArrayList()); for(int i=1;i if(!visited[i]) 라고 작성함으로써 원소 저장 안된 상태인지 확인 가능 null 값 return 할 때 defualt값 처리 h.get(now)를 하면 null값을 return할 수도 있기에 null값을 int형으로 바꾸면서 오류가 생긴다! -> 이 경우를 처리해주기 위해 "getOrDefault"를 이용하여 null인 경우에는 0으로 대체하여 num에 할당해주기! for(int i=0;i=1){ ar.add(now); cnt+=1; } 자바 개념 복기 Stringtokenizer에서 nextToken(); -> String을 반환하므로 int를 원하면 Integer.parseInt(nextToken())로 형변환해주기 자바에서 배열 정렬 -> Arrays.sort(배열이름) static 키워드는 클래스의 인스턴스를 생성하지 않고도 해당 메서드를 직접 호출할 수 있도록 도와준다 public class MathUtils { // 정적 메서드: 인스턴스를 생성하지 않고 직접 호출 가능 public static int add(int a, int b) { return a + b; } // 정적 메서드: 인스턴스를 생성하지 않고 직접 호출 가능 public static int multiply(int a, int b) { return a * b; } } publi.. 배열 정렬 자바에서 배열을 정렬할 땐 Arrays.sort()를 사용한다. 오름차순으로 정렬하고 싶다면 그냥 Arrays.sort(배열이름) 이렇게 해주면 되고, 이번 문제 처럼 배열의 두 번째 원소로 정렬을 하고 싶다면 아래와 같이 람다 표현식을 같이 써주어야 한다. Arrays.sort(graph, (o1,o2)->(o1[2]-o2[2])); -> 배열 o1, o2를 비교할 때 세 번째 열 값을 기준으로 오름차순으로 정렬하겠다는 뜻 ArrayList 정렬은 1) 오름차순 Collections.sort(ArrayList이름) 2) 내림차순 Collections.sort(ArrayList이름, Collections.reverseOrder()); Collections framework 의의 : 배열이 가지고 있는 한계 (배열을 선언할 때 배열이 몇 개의 값을 가질 수 있는지 정의해야하는데 이 때 정의한 배열의 크기를 바꿀 수 없다)를 해결해준다 ex) 배열과 비슷하게 작동하나 담을 수 있는 크기에 제한 없는 걸 원하면 List 카테고리 안의 세 가지 중 선택해 사용 관리해야하는 데이터가 중복적으로 저장되어 있지 않은 컨테이너를 원하면 Set 카테고리 안의 세 가지 중 선택해 사용 (집합같은 역할) key, value 방식의 컨테이너를 원하면 Map 카테고리 선택 Set -> 고유한 값들만 저장된다 (중복된 값들은 저장되지 않는다) -> 순서가 존재하 않는다 (뭐가 먼저 나올지 모른다) -> 그냥 집합이라고 생각하 -> 출력 결과 2) containsAll 메소드 A.containsAl.. 제네릭 * 자바 살짝 오랜만이라 복습 겸 유튜브 생활코딩님의 강의 듣고 정리 제네릭이란? -> 클래스 내부에서 사용할 데이터 타입을 클래스 외부에서 정의하는 것! 두 개의 데이터 타입을 생성함 (String, StringBuilder) 제네릭을 왜 사용하는가?! 살펴보기 위해 아래의 코드를 보자. 이 코드는 중복이 많다! StudentPerson-StudentInfo, EmployeePerson-EmployeeInfo 의 관계가 같아 같은 동작한다. 따라서 중복 없애도록 코드 재작성 new Person()안에 StudentInfo 객체 or EmployeeInfo 객체가 오길기대하면서 코드 짬 근데 한참 뒤에 이 코드를 보아 이 생각이 안 나서 info값이 들어오면 된다 생각해 그냥 Person p1= new .. 이전 1 다음