문제해결접근법_posted by 2022-07-14

Soye Park·2022년 11월 1일
0

깃헙블로그백업

목록 보기
2/10
post-thumbnail

본 포스팅은 깃헙 블로그 사용 당시 작성한 포스팅입니다.

문제 해결 접근

알고리즘(algorithm)이란?

특정 작업을 달성하기 위한 과정이나 일련의 단계

알고리즘 문제를 해결하기 위한 과정

  1. 문제 해결을 위한 계획 수립
  2. 문제 해결 패턴을 파악
  3. 문제를 단순화

문제의 이해

예시

  1. 스스로의 단어로 문제를 다시 말할 수 있는가?
  • 상대방의 의도를 파악해 도리어 상대방에게 질문을 할만큼 그 의도를 이해할 수 있는가?
  1. 문제의 입력값을 정확하게 알고 있는가?
  2. 문제의 해결방법에서 나와야하는 출력을 알고 있는가?
  3. 현재 문제를 해결할 수 있는 정보가 충분한 지 파악 가능한가?
  4. 현재 문제에서 가장 중요한 게 무엇인 지 파악 가능한가?

구체적 예제들기

예시, 두개의 숫자를 입력받아 합을 반환하는 함수 작성

  1. 간단한 예부터 시작 (1+2, 5+9…)
  2. 더 복잡한 예제로 발전 (2,402,059,123,590,000 + 298,029,490…)
  3. 빈 입력이 있는 예제를 탐색 (“” + “”…)
  4. 잘못된 입력이 있는 예제 탐색 (“23” + 가나다)

세부 분석

코드를 작성할 때 단계별로 세분화해서 분석하는 것이 중요하다.
문제를 이해하고 의사코드로 작성해보며, 해결책의 기본 구성을 작성한다

예시

위와 같은 방법으로 코드를 작성하기 전 내가 취해야할 단계를 명시적으로 작성하고(의사코드), 개념적 문제나 오해가 남아있는 지를 파악하며, 세부 사항(ex. language syntax)에 대해서 고민하는 등 자세를 취할 수 있다.


해결 또는 단순화

의사코드를 기준으로 코드를 만들고 정리한다.


되돌아보기와 리펙터

작성한 코드를 살펴보고 효율성과 가독성을 점검한다. (면접 시 질문한다)

  • 결과를 확인할 수 있는지
  • 결과를 다르게 도출할 수 있는 지
  • 코드 가독성이 좋은 지
  • 사용한 방법을 다른 문제에 재사용 가능한 지
  • 성능을 더 최적화할 방법이 있는 지
  • 리팩토링할 다른 방법을 생각할 수 있는 지
  • 다른 사람들의 풀이를 확인해볼 것
profile
응애FE개발자/ 블로그 이전 : https://soyeah-log.vercel.app/

0개의 댓글