티스토리 뷰
반응형
https://programmers.co.kr/learn/courses/30/lessons/42888
문제 접근 방법
해당 문제는 전형적인 해쉬 문제 입니다.
들어온 정보에 대해서 미리 해쉬로 저장하고 나서 값을 뿌려줄 때 해당 값을 뿌려주면 됩니다.
import java.util.HashMap;
import java.util.Map;
class Solution {
public String[] solution(String[] record) {
Participants participants = new Participants(record);
return participants.hashingUsers().returnAnswer();
}
public static class Participants {
private final String[] records;
private final String[] information;
private int size;
private final Map<String,String> users;
private static final String IN = "님이 들어왔습니다.";
private static final String OUT = "님이 나갔습니다.";
public Participants(String[] records) {
this.records = records;
users = new HashMap<>();
information = new String[this.records.length];
}
public Participants hashingUsers() {
int i =0;
for(String sentence : records){
String[] parts = sentence.split(" ");
if (parts[0].equals("Enter") || parts[0].equals("Leave")){
information[i++] = parts[0]+" "+parts[1];
}
if (parts[0].equals("Enter") || parts[0].equals("Change")){
users.put(parts[1],parts[2]);
}
}
size = i;
return this;
}
public String[] returnAnswer() {
String[] res = new String[size];
int i = 0;
for(int cur =0; cur<size; cur++) {
String[] parts = information[cur].split(" ");
if(parts[0].equals("Enter")) {
res[i] = users.get(parts[1])+IN;
}else{
res[i] = users.get(parts[1])+OUT;
}
i++;
}
return res;
}
}
}
hashingUsers
Enter와 Leave에 대해서는 information 배열에 저장하고, Enter와 Change에 대해서는 user의 아이디 값과 이름에 대해서 추가 또는 업데이트를 진행한다.
resultAnswer
Enter와 Leave에 대한 값 기준으로 아이디 대신 이름으로 Enter와 Leave는 각 맞는 한국어로 바꿔주는 역할을 한다.
반응형
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] [JAVA] 카카오프렌즈 컬러링북 (0) | 2021.12.09 |
---|---|
[프로그래머스] [자바] [카카오] 추석 트래픽 (0) | 2021.12.08 |
[프로그래머스] [자바] [카카오] 문자열 압축 (0) | 2021.12.06 |
[Programmers] [레벨3] 야근지수 (0) | 2021.10.29 |
2020 카카오 인턴십 수식 최대화 (0) | 2021.02.08 |
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 2021 KAKAO BLIND RECRUITMENT
- Command Line
- Pattern
- ubuntu
- Linux
- PostgreSQL
- 자바
- Java
- docker
- Spring
- 알고리즘
- BFS
- Celery
- Collections
- setattr
- 백준
- 파이썬
- postgres
- 카카오
- 프로그래머스
- headers
- DRF
- 면접
- Python
- django
- 그래프
- docker-compose
- dockerignore
- thread
- env
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함