카카오 2019 블라인드 코딩테스트 1번
문제보기
작성한코드
처음 문제를 접했을 때, 프로젝트 때 로그인을 해봤던 기억이나서 세션이랑 자꾸 연결이 되었다. 세션을 써도되는것인가…하며 생각하다가 아니다싶어 다른 코드를
짰다.
문제가 되는 부분은
- 한 사람이 Leave 하고 아이디를 변경하여 들어왔을 경우
- 채팅창에 있으면서 Change를 했을 경우
이 두가지가 제일 걸렸다. 처음부터 맵을 쓰자니 uid를 키로 했을 경우 동작을 담기가 힘들었고, 중복되는 키값일 경우 안에 내용이 변경되는 경우가 생겼다.(HashMap을 썻을 경우 둘다 처리 어려움, LinkedHashMap을 썻을 경우 동작을 담기가 힘듬) 그렇기 때문에, 각 문자열들을 담고 uid를 ArrayList에 같이 담아주었다.(약간 자바에서 세션객체를 제공하지 않을 때, 예전 세션정보를 body에 담는 느낌?이랑 비슷한…) uid로 비교해주고 변화가 일어나는 부분은 Change와 Leave이후 Enter했을 때 두 경우만 처리해주면 되기 때문에 어려울 것은 없었다.
아쉬웠던 점
처음 어떤 것을 써서 구현해야 할까 할 때 시간이 너무 소요된다. 정확하게 생각이 안나고 문제를 풀다가도 추가적으로 넣는 부분이 생기다보니, TDD를 연습해야하나…
그건 또 아닌가.. 모르겠다. 익숙해 질 수 밖에…