02/27 TIL

|

알고리즘 2문제

  • BOJ Puyo Puyo : 시뮬레이션(약간의 dfs..쓰긴 씀)
    • 생각보다 구현이 쉽진 않은 문제였지만, 내가 생각하기에 감시같은 문제보단 쉬운 듯하다.
    • 이번 문제를 풀면서, 삼성 역테 시험 때 빠르게 작성해둘 것이 무엇이 있는지 생각해봤다.
      • 자주 쓰는 라이브러리 : iostream ,vector, queue, stack, cstdlib, cstring, algorithm,.. 등등
      • 방향 벡터 작성 : 동, 남, 서, 북 형태로
      • 별로 없는 듯한데, 더 생각해봐야겠다.
  • BOJ 체스판 다시 칠하기 : 이건 그냥 for문.. 생각보다 엄청 쉬움.. 끗.

  • 매일매일 2문제 잊지말고 풀고, 실수하면 그 자리에서 실수한 것 적자.

  • 지금 생각하기에 부족한 점
    • BOJ 아기 상어에서 갑자기 멘탈 털렸었는데, 디버깅해보니 bfs에 대한 개념이 부족해서 일어난 문제였다. 확실히 코드를 작성하고, 문제를 풀 줄 안다고 아는 것이 아니기에.. dfs, bfs에 대한 명확히 이해를 다시 해야겠다고 느꼈다.

    • priority queue 사용법을 잘 숙지하지 못했다. 나무를 다시 풀어보면서, 익혀도 좋을 듯하다.


Hash Table 개선 방향

  • search는 금방 짤 수 있는 거라서 금방 짰다.

  • 처음에 na982님의 hash 강의가 이해가 되지 않았는데, 직접 해보고 나니깐 이해가 된다. 아래 링크를 다시보고 해당 방식으로 코드를 구현해보자.
    • https://www.youtube.com/watch?v=_z8rigUdm5Q&list=PLdHw4xVmS1psQWuFH35CSBxsHS6VkAKOp&index=3&t=0s
  • 당장 내일은 LinkedList를 짜야 된다.. ㅠ

졸업 작품 - OCR

  • 오늘 tesseract ocr의 정확도와 가속화에 대해서 이야기를 해보았다.

  • 정확도
    • 일단, 각각의 칸을 padding을 줘서 자른다고 가정.
    • 그랬을 때, 모든 칸을 캡처해서 1배, 2배, 3배를 돌려본다.
    • 1배를 돌렸을 때, 잘 나오는 것은 빼고 2배 했을 때, 잘 나오는 것 빼고, 3배 한다.
      • 이 때, 잘 되는 것이 전체에서 몇 퍼센트인지 확률로 나타내자.
      • 자동으로 되게 하기 어려울 거 같긴 하다.. 후…
    • 어떤 전처리를 더 해야 잘 되는지 tesseract wiki를 더 잘 읽어봐야겠다.
  • 가속화
    • 일단, 지금은 아니지만 표 인식 팀과 합칠 때 I/O를 줄일 수 있다.
    • 또한, 현재 python 코드를 c++로 바꾸어 성능 향상을 기대해 볼 수 있다.
      • 이는 python 코드 작성된 것과 c++ 코드와 성능 비교를 해봐야 할 듯하다.
    • 그 후에 tesseract 내부 코드를 보고 수정하여 성능 향상을 기대해볼 수 있다.
  • 코드 분석을 하기 전에 구조 분석을 하기 위해서, 읽다만 논문을 읽어야 할 듯 하다.

오늘의 마지막 말

  • 알고리즘 문제 2문제씩 잘 풀고 있다. 졸업 작품도 힘내서 잘해보자.

  • 항상 생각하고 고민하며, 끊임없이 행동하자. 사실 실천이 가장 어렵다. 어렸을 적에 초등학교 시간표 짜는 걸 생각해보면, 맞는 걸 알 수 있다. 계획은 잘 세웠는데, 행동하지 않는거지..

  • 그 날 아침부터는 최선을 다하자고 다짐하고, 그 날 마칠 때는 후회하지는 말자.
    • 매일 후회하면 스트레스 받으니깐…
  • 시간 관리 잘하자.

  • 아침마다 IT 뉴스 분석이나 해볼까..

02/26 TIL

|

알고리즘 2문제

  • BOJ 전광판의 숫자
    • string을 이용하여, 한번에 받고 파싱하는 것이 어려웠다.
    • 이런 극악 시뮬레이션 문제는 도중에 output을 확인하면서, 코딩하는 것도 좋은 듯하다.
  • BOJ 로봇 시뮬레이션
    • 그렇게 조건이 많긴 했지만, 어려운 시뮬레이션 문제는 아니었다.
    • 다만, 한번에 못 맞춘 이유는 실수를 해서 그렇다.
      • 문제에 x좌표, y좌표가 위로 갈수록 증가한다고 되어있는데, 항상 전형적인 map 방식으로 생각해서 x, y 좌표가 아래로 갈수록 증가하는 걸로 생각해서 풀어서 틀렸었다.
  • 전체적으로 코딩하는데 시간도 오래 걸릴 뿐더러, 잦은 실수가 많았다.

  • 명심해야 할 것은 한번 더 조건을 확인하고, 한번 더 코드를 확인한다면 검증한다면 실수가 없을 것 생각된다.

  • 알고리즘 문제 풀이 흐름
    1. 문제를 나만의 방식으로 정리한다.
    2. 입력 format, 출력 format을 정리하여, 종이를 보고도 코딩할 수 있게 만들어둔다.
    3. 알고리즘을 생각하고 알고리즘을 손으로 짠다.
    4. 조건을 빼먹은 것은 없는지, 일일이 체크를 하며 알고리즘과 비교한다.
    5. 종이를 보고, 코드를 작성한다.
    6. 코드 작성 도중에 알고리즘이 틀리거나, 추가해야할 점이 생기면 키보드에서 손을 놓고 빠르게 생각한다.
    7. 그 후 작성이 완료되면 예제 돌려보고, 맞을 수 있을 때까지 디버깅
    8. 범위가 가장 작은 것을 넣어봐서 원하는 값이 나오는지 확인한다.
    9. 제출

Hash Table

  • hash table은 일일이 다 찾을 필요 없이 이상적으로 O(1)에 찾을 수 있다.

  • 생각보다 코드가 길지 않아서, 금방 할 수 있었다.

  • search 함수만 짜고, 포스팅하면서 마무리 짓도록 하자.


졸업 작품 - OCR

  • An Overview of the Tesseract OCR Engine이 옛날 논문이라는 것을 알고, 읽다가 그만 읽었다.
    • 다시 드는 생각이 어차피 알아야 하니깐 논문을 읽고 포스팅하면서 파악하자.
    • 그런 다음, 다른 자료를 보며 어떤 부분이 LSTM, 머신러닝등으로 성능이 개선되었는지 보자.
  • 조사한 자료들
    • https://www.youtube.com/watch?v=ckRFBl_XWFg
    • https://github.com/tesseract-ocr/docs/tree/master/das_tutorial2016
    • https://deview.kr/2018/schedule/235 에서 이활석님의 강연을 다시 들어보자.
    • https://github.com/tesseract-ocr/tesseract/wiki/NeuralNetsInTesseract4.00

  • 저녁에 곱창까지 먹고 행복한 하루였다.. 내일은 좀 더 열심히 하루를 살아야겠다.

삼성 역량테스트 준비

|

개요

  • 삼성전자 s직군 입사는 오래 전부터 하고 싶었던 것이기에, 남은 기간, 역량테스트 유형 등을 파악하여 문제를 풀어야겠다.

  • 내가 아는 분은 삼성전자 sw테스트를 위해 400문제를 풀었다고 한다… ㅠㅠ 분발하자..

  • 갈수록 어려워지고 있고, 그 자리에 가서 그렇게 푸는 것이 쉬운 일은 아니다.
    안다고, 풀 수 있다고 자만하면 떨어진다. 이 점을 명시하며, 꼼꼼히 잘 풀자.


계획

  • 남은 기간
    • 나의 예상 sw테스트 : 4/14(일)

    • 2/26일(화) ~ 4/6일(토) : 40일

    • 하루에 무슨 일 있어도 2문제씩 (최소 3시간 투자)
      • 만약 2문제를 3시간 안에 다 푼다면, 다른 문제도 풀자.
      • 다른 문제는 swexpertAcademy에서 풀자.
    • 40일 * 2문제 = 80문제

    • 4/7(일) ~ 4/12(금) 기출 문제 (21문제) 풀이
      • 이미 풀었기에 빠르게 테크닉을 익힌다는 생각으로 풀자.
  • 매일 2문제 풀고, 실수한 부분이나 생각하지 못한 알고리즘 작성
    • til에 작성하여, 아침 가는 지하철에서 보거나 등등… 리뷰하는 시간을 가지자.
  • BFS, DFS, 시뮬레이션 문제 푼다.

다짐

  • 매일 2문제를 무슨 일이 있어도, 푸는 것으로 하자.

  • 매일 2문제를 끝까지 푼다면, 합격할 수 있을 거다.

  • 면접 대비 중요하긴 한데, 역량테스트 떨어지면 말짱 꽝이니깐 잘하자.

  • 잘해야 붙는다.

  • 당장 오늘부터 잘하자.

  • 제발 합리화 같은 건 하지 말고..


02/24 오늘 할 일

|

오늘 할 일

  • 부끄럽게도 이전에 세운 계획을 지키지 못했었다…ㅠ

  • BOJ 두 문제 풀기
    • BOJ 5372 큐빙
      • 큐빙 풀고 나서, 백준 아저씨가 푼 방식 다시 한번 보기
    • BOJ 15686 치킨 배달
  • Insertion Sort 포스팅 마무리

  • Selection Sort 포스팅

  • Hash Function 공부 및 구현
    • Hash 공부

    • https://bcho.tistory.com/1072 공부

    • Hash c++로 구현

  • 졸업 작품 ppt 만들기

02/22 오늘 할 일

|

오늘 할 일

  • 점심 먹기 전까지 BOJ 두 문제 풀기
    • BOJ 5372 큐빙
      • 큐빙 풀고 나서, 백준 아저씨가 푼 방식 다시 한번 보기
    • BOJ 15686 치킨 배달