728x90
반응형
문제 설명
1. 배열에 id, 닉네임, 상태가 주어진다. 상태는 Enter, Leaver, Change이다.
2. Change를 사용하면 그 id를 사용하는 사람의 닉네임이 바뀐다.
3. 사람이 들어오고 나가는 결과를 바뀐 최종 닉네임에 따라 return 하면 된다.
풀이 과정
1. HashMap과 ArrayList를 통해 간단히 구현할 수 있다.
2. 해쉬맵에는 그 사람의 id를 키값, 닉네임을 value값으로 한다. 이렇게 하면 id의 value가 바뀔 때 마다 변경 하능하다.
3. ArrayList에는 그 사람의 id와 출입내역을 저장한다. 그러면 그 id의 사람이 나가거나 들어온 것들을 저장 가능하다.
4. 그럼 상태에 따라 변경하면 된다.
1) 입장한 경우 - HashMap에 id와 닉네임을 넣어준다. 왜냐면 처음에 들어와야 변경하든 나가든 할 수 있으니까.
이후 arraylist에 class로 두 값을 (id, 님이 들어왔습니다.) 이렇게 넣어준다.
2) 나간 경우 - HashMap은 변경할 필요가 없다. 새로운 사람이 나간것도 아니고 닉네임이 변경된것도 아니니까.
ArrayList에 class로 두 값을 (id, 님이 나갔습니다.) 이렇게 넣어준다.
3) 닉네임 변경 - HashMap에 그 아이가 변경되었다는 것을 알려주면 된다.
워낙 간단한 문제라 따로 설명할 내용은 없을 듯 하다
코드
반응형
'알고리즘 공부' 카테고리의 다른 글
[프로그래머스] 최솟값 만들기- java (0) | 2021.10.29 |
---|---|
[프로그래머스] 더 맵게- java (0) | 2021.10.27 |
[백준 11559번] Puyo Puyo - java (0) | 2021.10.17 |
[백준 12100번] 2048(easy) - java (0) | 2021.10.16 |
[백준 1100번] 하얀 칸 - java (0) | 2021.10.05 |