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 |