본문 바로가기
728x90
반응형

전체 글148

[JAVA/Programmers] 43165 타겟 넘버(자바/프로그래머스) Programmers 프로그래머스 43165 타겟 넘버 문제는 작업 진도와 속도가 주어졌을 때, 각 배포마다 몇 개의 기능이 배포되는지 구하는 문제이다. 스택/큐 유형의 문제로 난이도는 Level 2이다. Programmers 43165 타겟 넘버 문제 정보출처- https://school.programmers.co.kr/learn/courses/30/lessons/43165알고리즘 분류- DFS/BFS (깊이 우선 탐색/너비 우선 탐색)난이도- Level 2 주요 개념DFS 알고리즘은 깊이 우선 탐색이라고 하며 그래프의 깊이 부분을 우선적으로 탐색한다.위 그래프에서 0 -> 1 -> 3  -> 4  -> 2  -> 5  -> 6 순으로 탐색하게 된다.재귀(recursive) 기반과 Stack 기반으로 .. 2024. 6. 5.
99클럽 코테 스터디 16일차 TIL 문자열 join 문자열 join 하기문자열을 join 하는 방법 2가지를 소개한다. String.join() 사용String.join(delimiter, elements)elements는 CharSequence type 이므로 리스트와 배열 둘 다 가능하다.List list = new ArrayList(Arrays.asList("A", "B", "C"));String[] array = new String[]{"A", "B", "C"};// String.join(delimiter, elements)String joinList = String.join("", list); // 결과: ABCString joinArray = String.join("/", array); // 결과: A/B/C Collectors.joinin.. 2024. 6. 4.
99클럽 코테 스터디 15일차 TIL 포화이진트리 Java 자주 쓰이는 포화이진트리 수식DFS나 BFS 문제를 풀면 포화이진트리(perfect binary tree)를 자주 볼 수 있다.알아두면 좋은 수식을 정리해 본다.  포화이진트리(perfect binary tree)란?모든 노드가 꽉 찬 이진트리를 말한다.node = [0, 1, 2, 3, 4, 5, 6];노드의 개수 : n = node.length;level까지의 노드의 총 개수2  ^ (level + 1) - 1level의 노드의 개수2 ^ level노드의 개수가 n 일 때, 몇 level까지 존재하는가Math.log()가 double이기 때문에 오차가 존재할 것이므로 완벽한 답은 아닙니다.int getLevel(int n) { return (int) (Math.log(n - 1) / M.. 2024. 6. 3.
99클럽 코테 스터디 14일차 TIL Java List 복사와 참조 Java List 복사와 참조의 차이주어진 graph에서 start node에서 end node로 갈 수 있는 모든 path를 구하는 코딩테스트 문제를 푸는 와중에 논리 오류(Logical Error)를 맞닥뜨렸다.List 복사 시 발생한 오류인데, 그에 관한 내용을 정리해 본다. 논리 오류가 발생한 코드start node 0에서 end node 4로 가기 위한 path를 구해보겠습니다.첫 번째 path인  [0, 1, 4]를 구하여 answer.add(path); 해주었습니다.두 번째 path인  [0, 3, 4]를 구하여 answer.add(path); 해주었습니다.answer을 출력해 보았습니다. 기대한 값은 [[0, 1, 4], [0, 3, 4]]이었으나,,,실제로는 [[0, 3, 4], [0, .. 2024. 6. 2.
99클럽 코테 스터디 13일차 TIL List to Map List를 Map으로 바꾸기List를 Map으로 바꾸는 방법 2가지를 소개한다. forEach() 사용List userList = new ArrayList();userList.add(new User(1, "kim", 30));userList.add(new User(2, "Yoo", 21));userList.add(new User(3, "Bae", 26));Map userMap = new HashMap();userList.forEach(user -> userMap.put(user.getId(), user.getName())); Collectors.toMap() 사용Map userMap2 = userList.stream() .collect(Collectors.toMap(user -> user.getId.. 2024. 6. 1.
99클럽 코테 스터디 12일차 TIL List 자료구조 List 자료구조와 method값과 포인터를 묶은 노드를 포인터로 연결한 자료구조포인터로 연결되어 있으므로 삽입, 삭제 연산이 빠르다.인덱스가 없어 Head 포인터부터 순서대로 접근해야 한다. add(element): 값 삽입add(index, element):  index에 해당하는 값을 삽입, 존재하지 않는 index면  IndexOutOfBoundsException 발생remove(index):  index에 해당하는 값을 삭제, 존재하지 않는 index면  IndexOutOfBoundsException 발생get(index): index에 해당하는 값을 조회, 존재하지 않는 index면 IndexOutOfBoundsException 발생 isEmpty(): Empty List면 true, 아니면 .. 2024. 5. 31.
99클럽 코테 스터디 11일차 TIL 배열과 리스트 Java 배열과 리스트배열 (Array)메모리의 연속 공간에 값이 채워져 있는 형태의 자료구조값은 인덱스를 통해 접근 가능하다.배열의 크기는 선언할 때 지정하고, 그 후에 늘리거나 줄일 수 없다.특정 인덱스에 있는 값을 삭제하기 어렵다.구조가 간단하여 코딩 테스트에서 많이 사용한다.리스트 (List)값과 포인터를 묶은 노드를 포인터로 연결한 자료구조인덱스가 없어 Head 포인터부터 순서대로 접근해야 한다.포인터로 연결되어 있으므로 삽입, 삭제 연산이 빠르다.크기가 정해져 있지 않아서 가변적인 데이터를 다룰 때 적합하다.포인터를 저장할 공간이 필요하므로 배열보다 구조가 복잡하다.// 배열String[] array = new String[100];int[] arr = new int[]{1, 2, 3};int.. 2024. 5. 30.
99클럽 코테 스터디 10일차 TIL Java 배열 정렬 #2 Java 배열 정렬 방법Stream API의 sorted()오름차순 정렬 - sorted(Comparator.naturalOrder())내림차순 정렬 - sorted(Comparator.reverseOrder()) 새로운 변수에 저장하여 추가 메모리가 필요하다.Comparator는 Wrapper Class 배열에서 사용할 수 있다.Primitive type 배열을 Wrapper Class 배열로 바꿔서 사용한다.String 배열은 사용 가능하다. (String은 Primitive type이 아님!)// 오름차순 정렬final List newArr = Arrays.stream(arr) .boxed() .sorted(Comparator.naturalOrder()) .collect(Collec.. 2024. 5. 29.
728x90
반응형