목록자료구조 (5)
개발 무지렁이

Set 중복체크 먼저, hashCode()를 호출해서 리턴값이 다르면 다른 객체로 인식하고, hashCode() 리턴값이 같으면 equals()를 호출해서 true이면 같은 객체, false이면 다른 객체로 인식 [Member.java] public class Member { private String name; private int age; private String addr; public Member() {} public Member(String name, int age, String addr) { this.name = name; this.age = age; this.addr = addr; } public String getName() { return name; } @Override public in..

막대기 🪅 가장 늦게 들어온 데이터부터 검사하는 데이터의 흐름을 보고 스택을 생각해낼 수 있느냐 🪅 조건을 만족하는 데이터가 나왔을 때, 기준을 변경해야하는 것을 잊지 않았느냐 🪅 스택 관련 라이브러리를 사용할 줄 아느냐 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Stack; /** * 백준 17608번 막대기 * * 입력: * 첫 번째 줄에는 막대기의 개수를 나타내는 정수 N (2 ≤ N ≤ 100,000)이 주어지고 이어지는 N줄 각각에는 막대기의 높이를 나타내는 정수 h(1 ≤ h ≤ 100,000)가 주어진다. * * 출력: * 오른쪽에서 N개의..

위장 🪅 부류별 가짓수를 구할때, 부류를 key로 가짓수를 value로 생각할 수 있느냐 => HashMap 🪅 경우의 수(조합)를 구할 수 있느냐 💡 문제 접근 과정 중요한 것은 부류별 '의상의 가짓수'이지 의상의 이름이 아니다 따라서 부류를 key로 두고 해당 부류의 가짓수를 value로 두는 HashMap을 생성 모든 부류마다 +1을 해주는 이유는 안입는 경우의 수를 포함하기 위해서이다. 마지막에 -1을 해주는 이유는 모두 안입는 경우의 수 제거를 위해서이다. import java.util.*; class Solution { public int solution(String[][] clothes) { int answer = 1; // key: 부류, value: 가짓수 Map map =..

큐(Queue) 먼저 들어온게 먼저 빠지는 형태의 자료구조를 말한다. 큐(Queue)의 구현 Queue queue = new LinkedList(); 큐(Queue)의 메서드 🌝 예외발생 추가: add() 삭제: remove() 검사: element() 🌚 null or false 리턴 추가: offer() 삭제: poll() 검사: peek()

그래프의 모든 노드를 탐색하는 BFS(Breadth First Search) 1 -> 2 -> 3 -> 4 -> 5 -> 6 -> 7 시작노드에서 출발하여 레벨 기준으로 자기 레벨을 다 탐색하고 내려가는 과정을 반복하는 것을 ' 넓이우선탐색(BFS) '라고 한다. ** (시작노드 기준으로 가까운 노드를 먼저, 최단경로를 보장) ** 🕑 시간복잡도: O(V+E) (V:정점수, E:간선수) [모든 정점을 한 번씩 방문하고, 그러기 위해 모든 간선을 한 번씩 검사했으니] BFS와 큐 BFS는 큐(Queue)로 구현하며, 큐(Queue)란 먼저 들어온게 먼저 빠지는 형태의 자료구조(FIFO)를 말한다 Queue queue = new ArrayDeque(); BFS 코드 구현 ⚠️ 한번 방문한 노드..