오픈채팅방

최진훈·2022년 5월 16일
0

programmers

목록 보기
71/73




처음 문제를 보고 키,쌍형태의 무엇인가로 문제를 해결하면 된다는 생각이 바로 들어서 뿌듯했다. split을 통해 아이디, 이름, 타입(ex. enter, leave, change)을 나누고 분류만 잘해주면 쉽게 해결할 수 있을 것 같다. 한 문장씩 읽어가면서 아이디를 키값으로 이름을 데이터로 최신화를 해주고, 타입에 따라 출력해줄 문장을 만든 뒤 맨 마지막에 아이디에 맞는 이름을 매핑해주면 될 것이다.
어떤형태의 데이터타입으로 문제를 해결할지 먼저 정하고 복습해보자.

source : https://notepad96.tistory.com/76

MutableMap을 사용하면 중복을 허용하지않으므로 키에 대한 데이터는 하나만 존재할 수 있다.
즉, 같은키에 대하여 새로운 데이터가 저장되면 기존의 데이터는 삭제되고 새로운 데이터로 업데이트되는 방식인 것이다. 정리해보면

  1. 키-값쌍으로 이루어진 데이터셋을 만든다.
  2. 입력 받은 record의 문장들을 하나씩 가져오면서 split함수를 이용하여 띄어쓰기를 기준으로 나눈다.
    3-1. 나눈 값이 Enter이면 해당하는 uidname을 저장하고 'uid' + 님이 들어왔습니다.answer에 저장한다.
    3-2. 나눈 값이 Leave이면 'uid' + 님이 나갔습니다.answer에 저장한다.
    3-3. 나눈 값이 Change이면 해당하는 uidname을 수정한다.
  3. 반복문이 끝나면 answer에 저장되있는 문장들을 uid에 따라 최신화된 name으로 변경한다.

레고레고

생각한대로 코드를 짜다보니 데이터를 최신화 해주는 시점이 마지막이어야 하는데 그렇게하면 aswer의 담긴 문장에 대해서 다시 또 여러 과정이 필요했다. 잘못된 방식이었다는걸 인지하고 record의 문장을 두번 읽어오는 방식을 채택했다. 첫번째 반복문에서는 데이터셋을 만들고, 두번째 반복문에서는 answer에 해당하는 문장을 넣어주는 방식이다.

테스트 통과~!~!~!

profile
레고레고

0개의 댓글