programmers.co.kr/learn/courses/30/lessons/42888
1. 알고리즘 유형
Map
2. 자료구조
리스트, 딕셔너리
3. 풀이
Enter, Leave, Change에 따라 구분
1) [명령어, uid] 형식으로 리스트에 저장
uid에 따른 이름 저장
1) 딕셔너리에 {uid: 이름} 형식으로 저장
출력 기능
1) 리스트의 첫 단어(Enter, Leave)로 출력값 구분
2) 리스트의 두번째 단어로 이름 구분
풀이
def solution(records):
answer = []
cmds = []
uids = {}
for record in records:
rec = list(record.split())
if rec[0] == "Enter":
cmds.append([rec[0], rec[1]])
uids[rec[1]] = rec[2]
elif rec[0] == "Leave":
cmds.append([rec[0], rec[1]])
else:
uids[rec[1]] = rec[2]
for cmd in cmds:
if cmd[0]=="Enter":
string = uids[cmd[1]]+"님이 들어왔습니다."
answer.append(string)
else:
string = uids[cmd[1]]+"님이 나갔습니다."
answer.append(string)
return answer
자바
import java.util.*;
class Solution {
public String[] solution(String[] records) {
HashMap<String, String> table = new HashMap<>();
for(String record: records){
String items[] = record.split(" ");
if(items[0].equals("Enter") || items[0].equals("Change")){
table.put(items[1], items[2]);
}
}
String[] answer = {};
ArrayList<String> list = new ArrayList<>();
for(String record: records){
String items[] = record.split(" ");
if(items[0].equals("Enter")){
list.add(table.get(items[1])+"님이 들어왔습니다.");
}else if(items[0].equals("Leave")){
list.add(table.get(items[1])+"님이 나갔습니다.");
}
}
answer=list.toArray(new String[list.size()]);
return answer;
}
}
배운점
list -> array로 바꾸는 라이브러리
toArray()
'알고리즘 > 프로그래머스' 카테고리의 다른 글
프로그래머스 - (python) 배달 (0) | 2021.05.19 |
---|---|
프로그래머스 - (Python)실패율 (0) | 2021.05.12 |
프로그래머스 -(python) 전화번호 목록 (0) | 2021.04.27 |
프로그래머스 - 영어 끝말잇기 (0) | 2021.04.23 |
프로그래머스 - 최솟값 만들기 (0) | 2021.04.13 |