더 알아보기/팁

알고리즘 문제에 쉽게 접근하는 방법

은돌1113 2021. 11. 12. 14:06

항해99 4기 동기분(이름은 개인정보라서 밝히지 않겠음)이 알고리즘 문제를 쉽게 접근하는 방법에 대해 강의를 진행 해주셨다. 블로그 기재에 대해서 허가를 받았고 강의 내용에 나왔던 의사코드를 더 알고 싶어서 추가로 찾아보고 정리했다.

 

난이도가 낮은 문제들은 문제를 읽어서 진행 하면 시행착오를 겪더라도 풀 수 있었는 데

난이도가 올라 갈 수록 문제에 직관력이 낮아져서 문제를 이해하기 어려 웠는 데 좋은 강의 덕분에

알고리즘 문제를 풀 때 어떻게 접근해서 문제를 쪼개면 좋은 지 많이 배울 수 있었다!

 

1. 지문 읽기

- 키워드를 캐치한다.

(목적, 규칙, 로직으로 정리하기)

 

2. 주석 쓰기

- 코드 작성 전에 무작정 써본다.

(손으로 써보면서 흐름을 잡아본다.)

 

3. 변수 정의하기

- 어떤 기능을 쓸 지, 변수 구조는 어떻게 할 지 생각한다.

(어떤 변수가 필요한 지 어떤 함수가 필요한 지 미리 생각 해본다.)

 

4. 함수로 흐름 짜보기

- 알고리즘을 쉽게 만들어 준다.

(필요한 함수가 어떤 게 있는 일단 짜본다.)

 

+ 무작정 적어봐라

(함수명이 아니어도 되고, 추상적으로 적어도 되고, 나만의 언어로 적어도 된다. 적다 보면 흐름을 잡을 수 있다.)

 

나만의 언어로 적는 방법 중 의사 코드(수도 코드)를 사용하는 방법이 있다.

: 작업의 단계별 현황을 알 수 있고 작업의 범위를 알 수 있다.

(큰 조각을 작은 조각들로 나눠서 풀면 난이도가 낮아 질 수 있다.)

 

의사 코드(수도 코드란)?

: 프로그램 코드를 작성 할 때 사용하기 위해, 프로그램의 진행 과정을 단계별로 기록 해놓은 것

-> 가짜 코드로써, 알고리즘이 수행될 내용을 인간의 언어로 간략하게 설명 해놓을 것을 말한다.

<-> 순서도는 논리적인 흐름을 나타내는 도구로써 명령문들의 연관 관계를 시각적으로 보여주는 것이다.

 

의사 코드를 사용하면 좋은 점은?

: 코딩 입력을 시작하기 전에 사고를 좀 더 명확히 정립 하게 만들어 줘서 프로그램을 설계하는 데 도움이 된다.

단순히 소스코드를 입력 하는 거솝다 함수 프로그램을 만들 때 많은 시간을 낭비 할 수 있다.

어느정도 각 풀이법의 장점과 단점을 주도면밀하게 살펴보면서 의사코드를 작성하게 된다면,

이후 디버그를 수정하고 코드를 재분해 하는 데 걸리는 시간을 줄일 수 있다.

 

https://42kchoi.tistory.com/114

 

의사코드(Pseudo-code) 작성법

의사코드(pseudo code) 작성법 의사코드 개념 : 의사코드란 프로그램 코드를 작성할 때 사용하기 위해, 프로그램의 진행 과정을 단계별로 기록해 놓은 것. 가짜의(Pseudo) - 코드 로써, 알고리즘이 수

42kchoi.tistory.com

 

5. 함수 구현하기

- 생각이 맞는 지 증명한다.

 

+ 검색하는 방법

-> 키워드를 잘 캐치해서 검색 하거나 stackoverflow 사이트를 이용하는 방법도 있다.

 

https://docs.google.com/presentation/d/1Ls4U6tGDdcSdqkldjVPhmpL8Mfj4ZOI9/edit