알고리즘/코드트리 문제풀이

코드트리 [자바 java] TreeMap기본

잔디🌿 2023. 9. 6. 15:11

https://www.codetree.ai/missions/8/problems/treemap-basic?&utm_source=clipboard&utm_medium=text 

 

코드트리 | 코딩테스트 준비를 위한 알고리즘 정석

국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요.

www.codetree.ai

이 문제는 제목 그대로 TreeMap의 기본 함수를 사용해보는 문제이다.

 

Entry는 잘 사용해보지 않아서 헷갈렸다. 앞으로 더 많이 연습해보아야겠다.

 

https://ethereal-coder.tistory.com/153

 

[알고리즘 개념] Map, Set, Queue

HashMap TreeMap HashSet TreeSet PreorityQueue HashMap HashMap는 해싱을 기본으로 데이터를 저장한다. HashMap에는 (Key,Value) 형태로 데이터가 저장된다. HashMap은 삽입, 삭제, 탐색 등 모든 함수의 시간복잡도가 전

ethereal-coder.tistory.com

기본 개념은 여기에 있다.

 

import java.util.*;
import java.io.*;
import java.math.*;
//import java.util.Iterator;
import java.util.Map.Entry;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        int n = Integer.parseInt(br.readLine());
        StringTokenizer st;
        TreeMap<Integer,Integer> m = new TreeMap<>();
        StringBuilder sb = new StringBuilder();
        Iterator<Entry<Integer,Integer>> it; 


        for(int i = 0;i<n;i++){
            st = new StringTokenizer(br.readLine());

            String k = st.nextToken();

            if(k.equals("add")){
                int a = Integer.parseInt(st.nextToken());
                int b = Integer.parseInt(st.nextToken());

                m.put(a,b);

            }
            else if(k.equals("find")){
                int a = Integer.parseInt(st.nextToken());
                if(m.containsKey(a) == false){
                    sb.append("None\n");
                }
                else sb.append(m.get(a) + "\n");
            }
            else if(k.equals("remove")){
                int a = Integer.parseInt(st.nextToken());
                m.remove(a);
            }
            else if(k.equals("print_list")){

                if(m.isEmpty() == true){
                    sb.append("None\n");
                }
                else{
                    it = m.entrySet().iterator();
                while(it.hasNext()){
                    Entry<Integer,Integer> entry = it.next();
                    sb.append(entry.getValue() + " ");
                }
                sb.append("\n");

                }
     
            }
            
            
        }

        System.out.println(sb);
        // 여기에 코드를 작성해주세요.
    }
}