반응형
안녕하세요. 오늘은 Java Collection Freamwork의 마지막 자료구조인 Map에 대해 설명드리도록 하겠습니다. Map 자료 구조의 경우와 같은 특징을 가지고 있습니다. Key와 Value의 쌍으로 데이터를 저장한다.Value의 경우 중복이 허용되지만, Key의 경우 중복을 허용하지 않는다.중복된 키를 사용하게 되면 기존 값이 삭제 되고 마지막 저장 값을 다시 저장한다. 저장 순서를 보장하지 않는다.또한, Map Interface 안에는 HashMap, LinkedHashMap, HashTable, TeeMap 등이 존재하는데요. 각각의 특징을 하나 하나 살펴보도록 하겠습니다. Map의 Entry에 대해 먼저 알아보도록 하겠습니다. Entry는 Map Interface 안에 있는 내부 ..
안녕하세요. 오늘은 이전 포스팅에 있어 Set 자료구조에 대해 알아보도록 하겠습니다. Set Interface는 아래와 같은 특징을 가지고 있습니다.데이터의 중복을 허용하지 않으며 순서를 유지하지 않음.순서가 존재하지 않기 때문에 Index로 접근이 불가능함.중복이 불가능하기 때문에 null 또한, 한 개만 저장할 수 있음. 그럼 HashSet에 대해 알아보도록 하겠습니다.HashSet는 아래와 같은 특징을 가지고 있습니다.배열과 연결 노드를 연결한 자료구조임의 검색 접근 속도에서는 가장 빠른 속도를 보임.추가, 삭제, 검색 등의 접근성이 매우 뛰어남.순서가 보장되지 않아 순서 예측은 불가능. Set hashSet = new HashSet();hashSet.add(70);hashSet.add(20);..
문제링크 🚩 https://school.programmers.co.kr/learn/courses/30/lessons/17680 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 📕 문제 접근 📕 - LRU : 가장 오래 참고 안한 값을 지우는 로직 - LinkedList로 밀면서 캐시 사이즈를 유지하는 방법을 채택하였다. 📖 배운점 📖 0일때 처리를 해주지 않으면 오답 처리가 나는 것 같다. remove() 단순 remove(int index)만 제공하는 줄 알았다. 리스트에 해당 인덱스의 값을 를 넣으면 그 인덱스번째의 값이 지워지는 것 뿐 아니라 re..
문제링크 🚩 https://school.programmers.co.kr/learn/courses/30/lessons/67256 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 📕 문제 접근 📕 현재 왼손과 오른손의 위치를 키패드를 누를 때 마다 기억하고 해야한다. 키패드의 위아래로 3차이, 양옆으로 1차이인 것을 이용해서 거리를 구하는 공식을 활용하였다. 💻 Code 💻 import java.util.*; class Solution { public String solution(int[] numbers, String hand) { String answer..
문제링크 🚩 https://www.acmicpc.net/problem/14438 14438번: 수열과 쿼리 17 길이가 N인 수열 A1, A2, ..., AN이 주어진다. 이때, 다음 쿼리를 수행하는 프로그램을 작성하시오. 1 i v : Ai를 v로 바꾼다. (1 ≤ i ≤ N, 1 ≤ v ≤ 109) 2 i j : Ai, Ai+1, ..., Aj에서 크기가 가장 작은 값을 www.acmicpc.net 📕 문제 접근 📕 - init 트리를 만들 때 더하거나 빼거나 곱하는 것이 아닌 현재에서 선택 할 수 있는 최소값을 선택하는 로직만 선택한다면 기존 세그먼트 트리 그대로 활용하여 문제를 해결 할 수 있다. 아래 문제와 매우 유사하니 학습용으로 함께 풀어보면 좋을 것 같다. https://www.acmi..
문제링크 🚩 https://www.acmicpc.net/problem/4354 4354번: 문자열 제곱 알파벳 소문자로 이루어진 두 문자열 a와 b가 주어졌을 때, a*b는 두 문자열을 이어붙이는 것을 뜻한다. 예를 들어, a="abc", b="def"일 때, a*b="abcdef"이다. 이러한 이어 붙이는 것을 곱셈으로 생각한다 www.acmicpc.net 📕 문제 접근 📕 - 굉장히 난처했던 문제 였다. - 문제 이해가 어려웠는데 정말 간단하게 설명하자면 ababab에서 최대 접미사 접두사의 반복 길이는 abab로 4이다 - 그치만 해당 문제가 요구하는것은 반복되는 문자열이 몇개의 반복으로 이루어져 있냐는 것이였다. - 예를 들면 ABCD의 경우 반복되는 것 없기에 ABCD의 1제곱이다. - 다음..