본문 바로가기
공부/알고리즘

2019 KAKAO BLIND RECRUITMENT > 오픈채팅방

by shining park 2024. 11. 6.

https://school.programmers.co.kr/learn/courses/30/lessons/42888

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

 

- 나의 풀이

 key : value 해시맵 ➡︎ <유저 아이디 : 닉네임> nickNameMap

HashMap<String, String> nickNameMap = new HashMap<>();

 

 문자열 리스트  배열 변환 방법 ( ArrayList<String> → String[] )

  • 알아두면 String[] answer 생성 및 데이터 추가하지 않고, 아래와 같이 바로 answerList 이용하여 리턴할 수 있음.
  • return answerList.toArray(new String[answerList.size()]);
  • return answerList.toArray(new String[0]);
 // ArrayList를 String[] 배열로 변환 -  ChatGPT 해설

1. list.toArray(new String[0]) : toArray 메서드에 new String[0]을 매개변수로 전달하여 ArrayList를 String 배열로 변환합니다.
  new String[0]은 빈 String 배열을 생성하는 것으로, toArray 메서드가 ArrayList의 크기에 맞는 새로운 배열을 생성하여 반환합니다.

2. 유연성: new String[list.size()]를 대신 사용할 수도 있지만, new String[0]을 쓰는 것이 일반적 입니다.
  Java는 내부적으로 배열 크기를 자동으로 조정하여 최적화된 배열을 생성합니다.


결과적으로 ArrayList의 요소들이 배열로 전환됩니다.

 

 

 - 나의 코드

import java.util.*;

class Solution {
    public String[] solution(String[] record) {

        //<유저 아이디, 닉네임>
        HashMap<String, String> nickNameMap = new HashMap<>();
        
        for(String str : record) {
            String[] order = str.split(" ");
            
            if(!order[0].equals("Leave")) {
                nickNameMap.put(order[1], order[2]);
            }
        }
        //System.out.println(nickNameMap);
        
        ArrayList<String> answerList = new ArrayList<>();
        
        for(String str : record) {
            String[] order = str.split(" ");
            
            if(order[0].equals("Enter")) {
                answerList.add(nickNameMap.get(order[1]) + "님이 들어왔습니다.");
            } else if(order[0].equals("Leave")) {
                answerList.add(nickNameMap.get(order[1]) + "님이 나갔습니다.");
            }
        }
        //System.out.println(answer);
        
        String[] answer = new String[answerList.size()];
        
        for(int i=0; i<answerList.size(); i++) {
            answer[i] = answerList.get(i);
        }
        
        return answer;
    }
}

'공부 > 알고리즘' 카테고리의 다른 글

2021 Dev-Matching: 웹 백엔드 개발자(상반기) > 다단계 칫솔 판매  (2) 2024.11.09
2018 KAKAO BLIND RECRUITMENT > [1차] 프렌즈4블록  (0) 2024.11.07
구명보트  (0) 2024.11.05
기능개발  (0) 2024.11.04
숫자 짝꿍  (0) 2024.11.03