사실 알고리즘 공부를 많이 한것은 아닌데 코딩테스트 준비를 위해 알고리즘이 가물가물해서 다시한번 복습하고
공부할겸 알고리즘 공부도 매일 하고있다.
알고리즘 공부방법은 다음과 같다
1. 흐름따라가기
- 알고리즘은 문제를 해결하는 방법이다.
근데 이 문제를 컴퓨터가 해결하는거라서
컴퓨터한테 설명을 잘 해줘야 한다
컴퓨터는 기본적으로 한 줄 씩 코드를 실행함
그 흐름들을 따라갈수 있어야 한다
아래 코드를 보고 이해가 한번에 안가면
중간중간에 print 문을 사용해서 출력을 잘 받고 있는지 어떻게 수행되고 있는지 파악해 보는것도 하나의 꿀팁
2. 변수와 함수명 짓기
변수와 함수는 영어로만 짓자
3. 일단 해보기
뭐...사실 다들 알겠지만 일단 해봐야된다
알고리즘과 친해지기위해 몇가지 몸풀기 문제를 풀어봤다
최댓값 찾기 - 다음과 같이 숫자로 이루어진 배열이 있을 때, 이 배열 내에서 가장 큰 수를 반환하시오.
2가지 방법으로 풀어봤다.

첫번째 방법은 하나씩 일일히 다 비교해보는것이다. 굉장히 비효율적인 방법

두번째 방법은 하나의 변수를 잡아다가 비교해가는 방법 코드도 간결하게 쓸수있다
최빈값 찾기 - 다음과 같은 문자열을 입력받았을 때, 어떤 알파벳이 가장 많이 포함되어 있는지 반환하시오. (단 최빈값을 가진 알파벳이 여러개일 경우 알파벳 순서가 가장 앞에 위치한 알파벳을 출력하시오




주석으로 하나씩 생각하면서 적어놨다
첫번째는 알파벳 어레이에 알파벳 들을 저장해두고
입력받은 문자열에서 각각 문자들을 뽑은다음에
해당 문자가 알파뱃과 동일하다면 증가시키는 방향으로 세팅해두었다
두번째는 0 * 26 각 알파벳의 빈도수를 저장한 배열을 만들고 문자열을 돌면서 해당 문자의 알파벳이면
알파벳을 인덱스화 시켜서 알파벳의 빈도수를 업데이트 한다
a -> 0번째 인덱스 값을 올리고 z가 나왔다면 가장 마지막인 25번째 인덱스 값을 추가해라.
이렇게 최댓값과 최빈값을 구하는 알고리즘 문제풀이 형식으로 몸풀기를 시작하였다.
'알고리즘' 카테고리의 다른 글
| 06 - Stack & Queue (1) | 2025.12.26 |
|---|---|
| 05 - Sorting(정렬) (0) | 2025.12.26 |
| 04 - 재귀함수 (0) | 2025.12.25 |
| 03 - 이진탐색 (0) | 2025.12.16 |
| 02 - Array & Linked List (0) | 2025.12.16 |