분류 전체보기

    [백준] 1748번 수 이어 쓰기 1 [Java]

    [백준] 1748번 수 이어 쓰기 1 [Java]

    처음에는 단순히 값을 String으로 바꿔서 더해서 length를 구하려고 했다. 이 때 생기는 문제는 100000000까지의 수가 모두 메모리에 올라가기 때문에 메모리 초과가 난다는 것이다. 그래서 각 자리 수를 계산해서 푸는 방법을 선택해서 풀었다. 👨‍🏫 풀이 해당 숫자를 10으로 나눈 값이 0이 될 때까지 나눠줘서 자릿수를 구한다. 👨🏻‍💻 코드 package 번1748; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main { public static void main(String[] args) throws IOException { BufferedRea..

    [백준] 17404번 RGB거리 2 풀어보기 [Java]

    [백준] 17404번 RGB거리 2 풀어보기 [Java]

    모든 집을 가장 적은 비용으로 색칠하는 문제이다. 조건으로는 현재 집에서 바로 전 집과 다음 집에는 다른 색을 칠해야 된다. 처음과 끝 집은 이어져 있다. 👨‍🏫 풀이 DP문제이다. 처음 집과 마지막 집을 제외하고는 이전 집의 색깔만 다르게 칠하면 조건을 만족할 수 있다. 1. 집을 색칠하기 시작할 때, 처음 집의 색깔을 정해놓고 칠한다. 2. 지금 칠하는 색과 다른 색으로 칠한 앞에 집의 값중에서 작은 것을 선택한다. 첫번째 집은 항상 미리 선택을 해놓기 때문에, 두번째 집만 첫번째 집의 색을 선택한 값으로 설정을 해놓는다. 첫번째 집과 동일한 색을 칠하는 경우는 MAX_VALUE로 설정을 해준다. return 값은 첫번째 집과 마지막 집이 같으면 안되기 때문에, 다른 색으로 칠해진 값중 작은 값을 r..

    [백준] 13398번 연속합 2 [Java]

    [백준] 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.

    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..