목록MAP (3)
기록방
java 8에서 추가된 Map 인터페이스의 디폴트 메서드로, key로 value를 검색하며 후처리를 진행하는 두 가지 메서드가 있습니다.computeIfAbsent() 메서드는 key가 맵핑되어 있지 않을때,computeIfPresent() 메서드는 key가 맵핑되어 있을 때 후처리를 진행합니다. computeIfAbsent() 메서드computeIfAbsent(key, mappingFunction)는 해당 key로 맵핑된 value가 있다면, value를 반환합니다.해당 key가 맵핑되지 않았다면, mappingFuncion을 실행합니다.메서드 구현default V computeIfAbsent(K key, Function mappingFunction) { Objects.requireNonNull(..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bDqc3H/btsHt1wjoyi/oSywqjoNIPbfwDLdjgYK21/img.png)
💡 트라이(Trie)는 트리형태로 문자열을 저장해 빠르게 탐색하는 자료구조이다. 일반적인 이진트리의 시간 복잡도는 O(logN) 이지만, 길이가 M인 문자열을 저장하면 O(M*logN)의 시간 복잡도를 갖는 문제가 생긴다.이러한 문제를 해결하기 위해서 Trie는 문자열의 문자 하나씩 노드에 저장한다.문자열 하나를 검색할 때 O(N)의 시간 복잡도를 갖는다.Java에서는 Map 자료구조를 이용해 구현한다.저장된 문자열 : cap, code, kakao, kai 🚀 트라이 자료구조 생성 및 사용검색하고자 하는 문자열을 트라이 클래스에 모두 저장한다.하나의 문자열을 저장할 때, 각 문자를 key로 자식 노드를 value로 트리 형태를 띄는지 확인한다.만약 현재 문자 key가 없다면, 생성해준다.마지막 노드..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bcNkAJ/btsAM3nagGy/esHDa5Z3qndl2hHyrFbZG0/img.png)
👉 문제링크 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 🔸 문제 분석 🔸 오픈채팅방에서 입장, 퇴장, 닉네임 변경 세 가지 기능의 기록이 주어진다. 사용자는 유저 아이디로 구분되는데, 입장 때의 닉네임이나 닉네임 변경 시 닉네임이 변경 될 수 있다. 사용자가 들어오고 나간 기록을 문자열 배열로 반환하는데, 최종 변경 된 닉네임으로 나타내야한다. 🔸 문제 풀이 🔸 사용자 아이디에 따른 닉네임을 맵으로 기록하고, 최종 반환 전 문자열로 변환한다. 🔸 코드 🔸 import java.util.Map; import java.util.HashMap; import..