Today I Learned 7

TIL 2022-06-23

알고리즘 1. 프로그래머스 - 키패드누르기 (2020 카카오인턴십) https://dvjgdiary.tistory.com/25 프로그래머스 - 키패드 누르기 [자바] 핵심: 문제의 목표를 파악 : 각 버튼을 어느 손으로 눌렀는지 알아야 한다. 목표달성을 위한 세부목표를 파악 : 1) 현재 더 가까운 손 판별을 위해 거리를 알아야 하고 2) 거리를 알려면 좌표를 알 dvjgdiary.tistory.com 1) 번호와 Mapping 되는 좌표구하기 HashMap말고 번호와 좌표의 규칙을 파악해서 직접구현 2) 좌표를 구할 수 있다면 거리는 문제될 것이 없음 3) 구현문제에서 너무 복잡해지거나 예외case에 대한 가지치기가 많아지면 잘못접근하고있을 가능성이 많다 4) 문제 요구사항이 무엇인지, 요구사항을 위해..

Today I Learned 2022.06.23

TIL 2022-06-21

알고리즘 https://dvjgdiary.tistory.com/20 (프로그래머스Lv1 - 신고결과받기) 배운점: 1. HashMap, HashSet 활용 String (중복X) A [C, D, E] B [C, A, D] C [A, B] D [E] E [A, B] 다음과 같은 (Key, Value)형태로 데이터를 저장하고싶을 땐 HashMap + HashSet 사용 HashMap map = ~~~ Entry에 HashSet이 포함되어있으므로 초기화시 HashSet을 생성해줘야 한다. for (int i=0; i O(N^2) reported reporter A [B, C, E] B [C, E] C [A, B] D [A, B] E [A, D] 하지만, [reported, reporter] 구조로 자료를 저장..

Today I Learned 2022.06.22

TIL 2022-06-18

1. HashMap과 HashSet의 차이 HashSet 정의 set인터페이스를 구현한 가장 대표적인 컬렉션(컨테이너). 즉, set의 특징처럼 1) 중복된 객체는 저장X, 2) Unordered Collection (원소들간의 위치적 전후관계 없음) 생성자와 메소드 생성자 HashSet ( ): HashSet객체를 생성 HashSet ( Collection c ): Collection c를 포함하는 HashSet객체를 생성 HashSet( int initialCapacity ): 파라미터 값을 초기용량으로하는 HashSet객체를 생성 메소드 1. 추가하기 - boolean add ( Object o ): 객체 o를 저장 - boolean addAll ( Collection c ): Collection ..

Today I Learned 2022.06.18

TIL 2022-06-17

알고리즘 1. BFS는 재귀와 관계가 없다. DFS는 재귀함수를 사용하여 접근하는게 일반적이다. BFS문제를 처음 접하고 문제에 관한 State Space Tree를 설계했지만 재귀함수로 구성하는데 무언가 문제가 있었다. 재귀함수로 구성하기 적절하지 않음 1. DFS의 경우 보통 재귀호출시마다 파라미터의 값(depth, etc.)을 갱신하여 base case에 도달하면 종료하는 구조이다. 하지만, BFS의 경우 depth를 기준으로 종료하는데 무리가 있었다.(애초에 depth로 접근하는 방법도 아닐뿐더러..) 2. BFS를 위해 큐를 사용했기 때문에 탐색 종료지점은 큐가 비어있는 경우이다. 이를 위해 while문을 사용했는데 while문에서 탈출한다는 것은 모든 방문이 끝났다는 것이고 그럼 재귀호출할 이..

Today I Learned 2022.06.17