post-custom-banner

나만의 무기

오늘은 우리 프로젝트의 핵심기능 중 하나인 DM 관련하여 작업해보았다.
How to Build a Chat App UI With Flutter and Dart
라는 글을 찾아서 참고해서 진행했는데, 아무래도 모든 설명이 영어로 되어있고 해서 하다가 포기한 사람이 많았을 것 같다. 약 18개월 전에 작성된 글이라, 현재와는 맞지 않는 부분도 있었다.

class ChatUsers{
  String name;
  String messageText;
  String imageURL;
  String time;
  ChatUsers({@required this.name,@required this.messageText,@required this.imageURL,@required this.time});
}

위처럼 현재는 쓰지 않는 문법이 들어가있는듯 했다. @ 를 지워주라고 빨간 줄로 경고가 떠서, 지워주니 단순히 해결되긴 했다. 하지만 단순하게 해결되지 않는 복병(?)들이 군데군데 숨어있었기에, 좀 고생했지만 우여곡절 끝에 완성할 수 있었다.

막상 완성해봤더니, 진짜 말 그대로 '뼈대'만 주어진 것이라는걸 파악하기까진 오래 걸리지 않았다. 이상해서 글 하단을 읽어봤더니...
에.... inspiration을 얻으라면서.... market이라고....?그렇다. 이 글은 결국 Flutter Chat App의 모양새까지만 구현되어있고, 디테일한 기능은 하나도 구현되어 있지 않았다. 대화도 그냥 어디를 누르든 똑같은 사람과의 동일한 대화내용이 나오고, 대화를 보내거나 받는 것도 불가능하고, 말 그대로 레이아웃만 제공되어 있었다! 결론은 제품을 팔기 위함이었던 것인가....

뭐... 오히려 좋아 ! 지난 사흘동안 열심히 공부했으니, 직접 해보면 되겠다.
나는 우리 팀을 위해 299달러를 쓰기보다는, 웬만한 기능을 직접 다 구현해보기로 했다. 오늘 작업한 부분을 gif로 만들어보았는데, 팀원들의 신상을 보호하기 위해 화면 왼쪽의 일부분은 덜 나오게 만들었다 !
오늘은 일단 주어진 튜토리얼 자료에 따라서 뼈대를 만든 후에, 각 사람별로 대화창이 뜰 수 있도록 작업해보았다. 아직은 채팅을 입력하는 것이나, 키보드 입력창에서 화면을 클릭했을 때에 키보드가 사라지는 기능 등이 전혀 없다.

내일은 어디까지 더 발전시킬 수 있을지, 정말 기대된다 !

알고리즘 스터디

프로그래머스 - 짝지어 제거하기

오늘은 풀었다. 심지어 4분만에!
짝지어 제거하기 라는 문제인데, 아깐 레벨 1 이라고 들었지만 지금 직접 확인한 결과 레벨 2 다.

문제를 읽어보니 비슷한 유형을 초기에 풀어본 기억이 났다. 아마 백준에 있는 '문자열 폭발'이라는 문제였던 것으로 기억한다. 정글 2주차 코딩테스트로 나온 2번째 문제였는데, 당시엔 25분 정도 걸렸다. 그리고, 당시에 코드리뷰를 해주신 분이 한 번에 pop을 2번 하도록 하는 방식도 괜찮을거 같다고 추천해주셨던 것으로 기억난다. (원래는 매번 하나씩 추가하다가, 현재 처리하려는 숫자가 stack의 가장 윗부분에 있는 숫자가 지금 추가하려는 숫자와 같은지 확인하는 등의 로직을 적용했는데, 결과적으로 조건문을 좀 더 복잡하게 걸었다) 그래서 언젠가 비슷한 유형이 나타나면 그렇게 풀어야지 생각하고 있었다.

def solution(s):
    stack = []
    for i in s:
        stack.append(i)
        while len(stack) >= 2:
            if stack[-1] == stack[-2]:
                stack.pop()
                stack.pop()
            else:
                break
    return 1 if not stack else 0

그리고 이번엔 그렇게 한번 풀어봤다. 처음에 제출했는데 무한루프가 걸려서 😗 ? 당황했는데, 역시나 무한루프에는 이유가 하나밖에 없다. else를 제대로 걸어주지 않아서 그랬던 것.

else를 걸어주니까, 바로 통과했다. 오랜만에 풀어서 좋긴한데, 사실 비슷한 유형을 풀어봤기에 가능했던 일인지라...
내일은 처음보는 문제를 만나고, 그리고 꼭 풀어내고 싶다.

post-custom-banner

0개의 댓글