티스토리 뷰

문제 - (programmers.co.kr/learn/courses/30/lessons/42888)

HashMap을 사용하면 어렵지 않은 문제였다.

테크닉 정도를 기억하고자 한다

 

String형 타입의 ArrayList<String> list 가 있다면

이 리스트를 배열로 나타내야 할 때,

 

list.toArray(new String[list.size()]);

를 사용해서 배열로 나타낼 수 있다

 


코드

import java.util.ArrayList;
import java.util.HashMap;
import java.util.StringTokenizer;

class Solution {
    public String[] solution(String[] record) {
        HashMap<String, String> map = new HashMap<>();

        for (String line : record) {
            // 명령어 파싱
            StringTokenizer st = new StringTokenizer(line);
            String cmd = st.nextToken();
            if (cmd.equals("Leave")) continue;
            map.put(st.nextToken(), st.nextToken());
        }

        // memo한 cmd를 가지고 result 생성
        StringBuilder sb = new StringBuilder();
        ArrayList<String> answer = new ArrayList<>();
        for (String line : record) {
            StringTokenizer st = new StringTokenizer(line);
            String cmd = st.nextToken();
            switch (cmd) {
                case "Enter":
                    sb.append(map.get(st.nextToken())).append("님이 들어왔습니다.");
                    break;
                case "Leave":
                    sb.append(map.get(st.nextToken())).append("님이 나갔습니다.");
                    break;
                default:
                    continue;
            }
            answer.add(sb.toString());
            sb.setLength(0);
        }
        return answer.toArray(new String[answer.size()]);
    }
}

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함