분류 전체보기
![[백준] 17404번 RGB거리 2 풀어보기 [Java]](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FHb3xO%2FbtruNjCT0Tu%2F809tjblyKKPpNAqUoihxkK%2Fimg.png)
[백준] 17404번 RGB거리 2 풀어보기 [Java]
모든 집을 가장 적은 비용으로 색칠하는 문제이다. 조건으로는 현재 집에서 바로 전 집과 다음 집에는 다른 색을 칠해야 된다. 처음과 끝 집은 이어져 있다. 👨🏫 풀이 DP문제이다. 처음 집과 마지막 집을 제외하고는 이전 집의 색깔만 다르게 칠하면 조건을 만족할 수 있다. 1. 집을 색칠하기 시작할 때, 처음 집의 색깔을 정해놓고 칠한다. 2. 지금 칠하는 색과 다른 색으로 칠한 앞에 집의 값중에서 작은 것을 선택한다. 첫번째 집은 항상 미리 선택을 해놓기 때문에, 두번째 집만 첫번째 집의 색을 선택한 값으로 설정을 해놓는다. 첫번째 집과 동일한 색을 칠하는 경우는 MAX_VALUE로 설정을 해준다. return 값은 첫번째 집과 마지막 집이 같으면 안되기 때문에, 다른 색으로 칠해진 값중 작은 값을 r..
![[백준] 13398번 연속합 2 [Java]](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdcsrnH%2FbtruMnTGC4F%2F9kMJDk8VCrPlBYVUKuGtu1%2Fimg.png)
[백준] 13398번 연속합 2 [Java]
DP문제이고, 누적합을 활용해서 푸는 문제이다. 다만 중간에 값을 "하나"를 제거할 수 있다. 그리고 "하나"의 값을 무조건 선택해야 된다. 이 조건을 생각하지 않고 풀어서 첫번째 제출에서는 틀렸다... 👨🏫 풀이 0 : 제거하지 않은 경우 , 1: 제거한 경우 현재 인덱스에서 값을 제거한 경우와 제거하지 않은 경우를 나눠서 풀면된다. 현재 인덱스 기준으로 값을 하나도 제거하지 않은 경우 이전 인덱스에서 값을 제거하지 않은 경우 + 현재 인덱스 값 : dp[i-1][0] + nums[i] 현재 값: nums[i] 두 값중 큰 것을 취하면 된다. 현재 인덱스 기준으로 제거한 값을 제거한 경우 이전 인덱스에서 값을 제거한 경우 + 현재 인덱스 값: dp[i-1][1] + nums[i] 현재 값을 제거한 경..
![Java Collection Framework 공부하기 Part 6.](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FUN5rF%2FbtruK5LdrOv%2FS6Wjp6Z0d1r3t5C6RxZqrk%2Fimg.png)
Java Collection Framework 공부하기 Part 6.
🙌 HashMap 알아보기 🧐 HashMap이란 ❓ HashMap은 Map을 구현한 구현체이다. 그래서, Map의 특징을 가지고 있다. key, value를 묶어서 하나의 데이터로 저장한다. 그리고 Hashing을 사용하기 때문에 많은 양의 데이터를 검색하는 데 뛰어난 성능을 보인다. 🧐 HashMap의 데이터는 어떻게 저장될까❓ HashMap은 Entry라는 내부 클래스를 정의한다. Entry에는 key와 value가 변수로 존재한다.그래서 HashMap은 데이터를 저장할 때, Entry 형태로 저장한다. 🧐 HashMap에는 어떤 Method가 있을까 ❓ Set entrySet() - HashMap에 저장된 키와 값을 엔트리의 형태로 Set에 저장해서 반환 Set keySet() - HashMap에 ..
Java Collection Framework 공부하기 Part 5.
🙌 HashSet, TreeSet을 알아보기 🧐 HashSet이란 ❓ 이름에도 나와 있듯이 Set 인터페이스를 구현한 가장 대표적인 컬렉션이다. Set인터페이스의 특징대로 HashSet은 중복된 요소를 저장하지 않는다. 데이터를 추가하는 메소드를 호출했을 경우, 만약 데이터가 이미 저장되어 있다면 false를 반환한다. Set인터페이스의 또 다른 특징인 저장순서를 유지하고 있지 않는다. Set이 저장순서를 유지하고자 한다면 LinkedHashSet을 사용해야 한다. 🧐 HashSet은 어떤 method를 가지고 있을까❓ boolean add(Object O) : 새로운 객체를 저장한다. boolean addAll(Collection c) : 주어진 컬렉션에 저장된 모든 객체들을 추가한다.(합집합) boo..
Java Collection Framework 공부하기 Part 2.
🙌 ArrayList, LinkedList, Stack, Queue 알아보기 🧐 ArrayList란 ❓ List인터페이스를 구현하기 때문에, 데이터의 저장순서가 유지되고 중복을 허용한다는 특징을 갖는다. 기존의 Vector를 개선한 것으로 Vector와 구현원리와 기능적인 측면에서 동일하다고 할 수 있다. 배열에 더 이상 저장할 공간이 없으면 보다 큰 새로운 배열을 생성해서 기존의 배열에 저장된 내용을 새로운 배열로 복사한 다음에 저장된다. 데이터를 읽어오는데 걸리는 시간이 가장 빠르다.(index로 접근시에 상수시간안에 접근이 가능하다) 크기를 변경할 수 없고, 데이터를 배열의 중간에 추가하거나, 배열 중간의 데이터를 삭제하는 것에는 새로운 빈자리를 만든 후, 다른 데이터들을 복사해서 이동해야 되기 때..