처음 문제를 보고 키,쌍형태의 무엇인가로 문제를 해결하면 된다는 생각이 바로 들어서 뿌듯했다. split을 통해 아이디, 이름, 타입(ex. enter, leave, change)을 나누고 분류만 잘해주면 쉽게 해결할 수 있을 것 같다. 한 문장씩 읽어가면서 아이디를 키값으로 이름을 데이터로 최신화를 해주고, 타입에 따라 출력해줄 문장을 만든 뒤 맨 마지막에 아이디에 맞는 이름을 매핑해주면 될 것이다.
어떤형태의 데이터타입으로 문제를 해결할지 먼저 정하고 복습해보자.
source : https://notepad96.tistory.com/76
MutableMap
을 사용하면 중복을 허용하지않으므로 키에 대한 데이터는 하나만 존재할 수 있다.
즉, 같은키에 대하여 새로운 데이터가 저장되면 기존의 데이터는 삭제되고 새로운 데이터로 업데이트되는 방식인 것이다. 정리해보면
record
의 문장들을 하나씩 가져오면서 split
함수를 이용하여 띄어쓰기를 기준으로 나눈다.Enter
이면 해당하는 uid
와name
을 저장하고 'uid' + 님이 들어왔습니다.
를 answer
에 저장한다.Leave
이면 'uid' + 님이 나갔습니다.
를 answer
에 저장한다.Change
이면 해당하는 uid
에name
을 수정한다.answer
에 저장되있는 문장들을 uid
에 따라 최신화된 name
으로 변경한다.생각한대로 코드를 짜다보니 데이터를 최신화 해주는 시점이 마지막이어야 하는데 그렇게하면 aswer
의 담긴 문장에 대해서 다시 또 여러 과정이 필요했다. 잘못된 방식이었다는걸 인지하고 record
의 문장을 두번 읽어오는 방식을 채택했다. 첫번째 반복문에서는 데이터셋을 만들고, 두번째 반복문에서는 answer
에 해당하는 문장을 넣어주는 방식이다.
테스트 통과~!~!~!