자바 컬렉션 배우다 보면 꼭 등장하는 자료구조가 있다.👉 HashSet처음 보면 그냥:Set set = new HashSet();이렇게만 쓰고 넘어가기 쉽다.근데 내부 동작 원리를 이해하면:✔ 왜 중복이 제거되는지✔ hashCode()와 equals() 역할✔ 왜 순서가 없는지✔ HashMap과 관계이런 게 한 번에 이해된다.실무에서도 진짜 많이 쓰는 컬렉션이다.HashSet 이란?👉 중복을 허용하지 않는 Set 컬렉션예시:Set set = new HashSet();set.add("Java");set.add("Java");set.add("Spring");System.out.println(set);실행 결과[Java, Spring]👉 "Java" 중복 저장 안 됨HashSet 핵심 특징✔ 중복 불가✔..
2024.07.23기준 - 실버2백준, BEAKJOON, BOJ, JAVA, 자바 풀이이 문제는 자신의 친구의 수와 (친구와 친구의 수)를 더 해 가장 2-친구가 많은 사람을 찾는 문제입니다. 저의 접근은 친구들을 저장할 때, 중복을 제거하기 위해 Set으로 접근을 먼저 했습니다. 1. 자신의 번호와 친구, 친구의 친구를 저장하는 커스텀 class를 생성했습니다.// 친구들을 저장하는 클래스public static class Friend { int number; Set one, two; public Friend(int n, List o) { number = n; one = new LinkedHashSet(); // 친구 two = new LinkedH..
2024.07.07기준 - 실버1백준, BEAKJOON, BOJ, JAVA, 자바 풀이이 문제는 쿼드트리를 이용하여 하나의 ()안에 수로 표현해 출력하는 문제입니다. 에제의 일부를 통해 문제를 설명하도록 하겠습니다.// 예제 181100001111000011000011000000110010001111010011110011111100111111 왼쪽 위의 ()는 이렇게 나오게 됩니다.이렇게 동일하게 z방향으로 ()가 쌓이면서 진행하게 되는 원리입니다. 1. 함수를 생성해 전체 블럭이 하나의 0 또는 1로 구성되어 있다면 ()없이 바로 숫자를 출력해줍니다.Set set = new LinkedHashSet();char c = ' ';// 전체가 1 또는 0 이라면 () 없이 1 또는 0을 출력for (int ..
2024.06.29기준 - 실버2 백준, BEAKJOON, BOJ, JAVA, 자바 풀이이 문제는 원점에서 바라봤을 때, 보이는 학생의 수를 구하는 문제입니다. 제가 생각하는 문제의 핵심은 기울기는 같아도 앞에 있냐 뒤에 있냐에 따라서 둘 다 보일 수 있다는 거라고 생각합니다. 1. 각 위치별로 저장할 수 있는 리스트를 생성합니다.List u = new LinkedList(); // 위쪽List d = new LinkedList(); // 아래쪽List r = new LinkedList(); // 왼쪽List l = new LinkedList(); // 오른쪽List ul = new LinkedList(); // 위오른쪽List ur = new LinkedList(); // 위왼쪽List dl = new..