20210317-TIL

나영원·2021년 3월 18일
0

T.I.L.

목록 보기
123/145

오늘 할일

  • 포트폴리오 준비
  • 채용공고 읽기
  • 개인프로젝트 준비
  • 알고리즘 문제풀기
    • 알고리즘 공부법 영상보기
  • 기술면접 준비

오늘 한 것 & 배운 내용

채용공고 읽기

  • 코틀린 개발자를 찾는 공고가 있어서 이번기회에 Java와 Kotlin에 차이점을 간단하게 정리해 보았다

    • 세미콜론 ; 을 사용하지 않는다
    • primitive type이 없다
    • 함수를 변수처럼 사용이 가능하다(일급함수)
    • Data Class를 활용해 get/set을 lobok처럼 구현가능하다
    • NullAble을 변수쪽에서 처리가 가능하다
    • 이런 차이점이 있지만 Java코드와 100& 호환가능하고 스프링부트도 사용할수 있다고하니 Java개발자로서 충분히 선택할수 있는 옵션이 될것 같다
  • 기업에 대해 다른 정보도 중요하지만 개발팀이 잘구성되어 있고 거기서 내가 함께 성장해 나갈 수 있는지를 파악하는데 노력을 해야하는 것 같다

    • 이런 부분은 일반 취업정보로는 정보가 부족하기 때문에 단톡방등 다양한 소스를 이용해서 찾아보는 수밖에 없는 것 같다
  • 지원할 기업들을 찾기위해 저녁 시간에도 시간을 내어 공고를 읽어보았다

    • 항상 앞쪽 리스트에 떠있는 기업 몇가지만 살펴봤는데 찾아보니 훨씬 많은 양의 기업들이 공고를 올려놓은 것을 확인할 수 있었다
    • 다른 기준보다 자사 서비스가 운용되는지와 개발문화가 어떤지를 중점적으로 두고 찾아보면 좋을 것 같다

포트폴리오 준비

  • 아침에 학원동기와 연락을 하다 웹페이지형식이 아닌 ppt 형식으로 준비했다는 정보를 얻어 진행한 프로젝트의 정보를 자세히 보여줄 수 있다는 장점을 살리기 위해 ppt로 변경하기로 결정하였다
    • ppt 작업은 최종프로젝트 발표때 사용한 미리캔버스를 사용하기로 하였고 정리해둔 자료를 활용하여 포트폴리오를 작성해보았다
    • 결과물
  • 주변에 포트폴리오 피드백을 요청해놓은 상태이고 어느정도 수정에 거친다음에 해당 포트폴리오를 활용해 지원을 해볼 생각이다.
    • 포트폴리오에 대해서는 깔끔하다는 피드백을 많이 받았고 현재의 포트폴리오를 하나의 상세 프로젝트 설명으로 남기고 좀더 본인의 스토리텔링이 가능한 포트폴리오로 만들어보라는 피드백을 받았다
      • 적극적으로 포트폴리오에 대한 피드백을 받으려는 노력은 잘한 것 같고 빠르게 보완해나갈 방향을 잡는데 도움이 많이 되었다

알고리즘 문제 풀이

부녀회장이 될테야

  • 내풀이 - 1시간 이상
    • 풀이하는데 시간이 오래걸렸는데 문제를 이해하는건 오래걸리지 않았는데 해결방법을 찾는데 오래걸렸다
      • 결국 2개의 임시 배열을 만들어 아래 배열의 값을 합쳐서 위의 배열에 넣고 다 끝나면 위에 배열을 다시 아랫배열로 만드는 정직한 방식으로 풀어냈다
      • 좀더 좋은 해결방법이 없는지 고민하다가 풀었는데 생각보다 해당 방법으로 푼 성능이 나쁘지 않아서 다행이다
  • 다른사람 풀이
    • 내가 푼것 처럼 구지 배열을 2개만 유지할 필요없이 다차원 배열을 이용하여 그대로 기록해 나가는 방식으로 풀어나갔다..
      • 구지 지우고 넣고 할필요 없는 것을 괜한 고생만 한것 같다..
      • 다차원 배열의 크기를 층과 호수로 제한을 둔다면 성능도 더 빨라질 것 같다
    • 참고 : [백준] 2775번 : 부녀회장이 될테야 - https://st-lab.tistory.com/78

나누기

  • 내풀이
    • 뒤에 두자리수가 낮을 수록 좋기 때문에 먼저 나눠야 하는 수의 2자리를 00으로 만들어주기 위해 100으로 나눈숫자를 빼준다
    • 바뀐 N을 F로 나누어서 나머지가 0이라면 이미 가장 작은 수이기 때문에 00을 출력한다
      • 나머지가 0이상이라면 해당 N(00으로 만든) + F가 나눠서 가장 작은수이기 때문에 N+F를 한뒤 뒤에 두자리를 출력한다
  • 다른 사람풀이
    • 다른사람의 풀이는 훨씬 단순했다
      • 위에와 같이 먼저 N의 뒷자리를 00으로 만든뒤 F로 나뉘어 떨어질대까지 0부터 1씩 증가시키는 방법으로 풀었다
        • 오히려 이 예가 성능이 잘나온 것을 보면 때로는 단순하게 접근하는게 더좋은 방식이라는걸 다시한번 생각하게된다
      • 참고 : 백준/1075번 :: 나누기 (Java 자바 구현) 알고리즘 풀이 - https://hongku.tistory.com/252

시험감독

  • [내풀이]

    • 먼저 시험장의 갯수에 따라 시험인원을 배열에 넣는다
    • count 변수를 만들고 for문으로 시험장 하나의 인원을 불러와 주감독관에 관리할수 있원을 뺀후 부감독관이 관리할수있는 인원수로 나누서 count를 추가해준다
      • 이때 부감독관이 관리할수 있는 인원이 나누어 떨어지지 않는다면 +1을 해주는 로직을 추가한다
    • 이렇게해서 풀고 문제에 모든 테스트 코드를 다통과했는데 실제 제출해보니 틀렸다고 나왔다
      • 5개정도의 테스트코드를 통과하니 로직에는 문제가 없다고 확신이 드는데 틀리니 당황스러워서 고민하다가 질문게시판을 찾아보니 count가 너무커져서 overflow가 발생함을 확인해서 long타입으로 바꾸니 문제없이 통과됬다
        • 로직상에 문제가 없으면 먼저 overflow를 체크해보는 습관을 길러야될 것 같다
  • 다른사람 풀이

    • 다른사람들의 풀이를 봤는데 나의 풀이와는 크게 다른점은 찾지 못하였다

    • 이문제에 정답률이 낮은이유는 type때문이었던걸로...

  • 사담으로 알고리즘이 막힐때 옥상으로가서 바람을 좀쐬면서 고민하다보면 생각보다 잘 풀리는 경우가 많다

    • 알고리즘 뿐만아니라 코드 구현하면서 막힐때도 앉아만 있는게 아니라 조금 움직이면서 고민해보면 도움이 될 것 같다
  • 사담추가로 백준 사이트가 눈이부셔서 다크모드가 없는지 검색해봤는데 공식지원 모드는 없고 유저가 만들어놓은 모드가 있었다

    • 해당 모드 깃헙 레포 : https://github.com/exqt/twilight-boj
      • 이번에 Jekyll 테마를 받으면서도 느낀거지만 Gihub Repo에 Readme 파일을 ㅗ애 사용하는지 모르고 있었는데 해당 기능을 사용하고 싶은 사용자에게 사용법을 안내해주는 용도로 많이 사용되는 것 같다
      • 나도 언젠가 다른사람들이 필요로하는 것을 개발해서 사용하기 편하게 Reame를 깔끔히 정리해두어 편리하게 사용할 수 있도록 기능을 제공 해 보고 싶다는 목표가 생겼다

정리

  • 오늘 기획했던것 만큼 다른 활동은 못했지만 포트폴리오에서 큰진전이 있었고 어느정도 지원하면서 진행할만한 구색이 갖춰진 것 같아 앞으로의 공부방향에도 변화가 생길 것 같다
    • 일단 선 지원후 코딩테스트와 면접은 배운다는 마음으로 임하고 필요를 느끼면서 우선적으로 공부해나가는 방향이 될 것 같다
    • 개인 프로젝트는 만약 서류지원에서 통과율이 너무낮다면 우선적으로 진행해야겠지만 서류가 통과한다면 잠깐 보류해두고 코테와 면접준비를 우선해야될 것 같다

내일 할일

  • 포트폴리오 마무리
  • 기업 선정해서 지원하기
  • 알고리즘 문제 풀기
profile
배우는 개발 일기

0개의 댓글