[TIL] 알고리즘 본격 입문

조성현·2022년 11월 9일
0

알고리즘 전투에 입성하다.

Q. 문자열에서 가장 많이 사용된 알파벳을 찾아봅시다.(최빈값 찾기)

  • 답을 보지 않고 스스로 풀어본 뒤 / 답안과 비교하며 더 최적화할 수 있는 방법들에 대해 탐구하는 방식으로 진행.

1. 일단 list를 사용하여 문자열을 리스트로 변환했다.
(나중에 알고보니 list를 사용하지 않아도 동일하게 동작했다.)

2. .isalpha()와 아스키코드로 변환해주는 ord 함수를 사용하여 알파벳의 사용빈도를 기록했다.

3. find_max_num 함수를 사용하여 사용빈도의 최댓값을 구했다.

  1. 구글링을 통해 찾은 .index() 메소드를 사용해서 인덱스 값을 구하려 했으나,
    배열의 가장 앞에 있는 인덱스 값만 준다는 문제점을 직면하였다.

5. 다시 구글링을 통해 range(len(배열))을 사용한 for loop를 통해 인덱스 값들을 구할 수 있다는 점을 배우고 코드를 작성하였다(같은 값을 가진 복수의 인덱스 구하기 자료링크)

6. chr()함수(참고 링크)를 통해 max_used_alphabet_list에 알파벳을 담아주었다.

7. 끝! 답을 안보고 혼자 풀어냈다는 점에서 매우 기분이 좋았다.

++ 강의 답변코드의 경우 최빈값이 여러개 일 경우 왼쪽처럼 정확하게 나오지 않지만, 내가 작성한 코드는 그걸 다 잡아낸다!


Today I Learned


1. 알고리즘 입문... 치고는 좀 어렵다고 생각하는 문제를 혼자서 푸는데 성공했다.

  • 아직은 경험이 적어 기술적으로는 부족하지만, 어떻게 풀어야 겠다는 아이디어가 막히지 않고 떠올랐다는 점에서 만족한다.
  • 어떤 일을 할 때, 견적을 보고 구상과 계획을 우선적으로 한 뒤에 시작하는 개인적인 성향이 개발과정에서 도움이 많이 되는 것 같다.

2. ‘좋은 이름 짓기’ & ‘이름의 본질적인 의미에 부합하게 기능사용하기’에 대해 고민하고 배움을 얻었다.

  • 함수, 메서드의 네이밍 컨벤션과 어제오늘 고민한 set, if not에 대한 탐구를 토대로 깨달음을 얻었다.
    이에 대해 부족하지만 벨로그 글을 작성했다.(링크 / 내 벨로그 글 링크달기)
profile
맛있는 음식과 여행을 좋아하는 당당한 뚱땡이

2개의 댓글

comment-user-thumbnail
2022년 11월 9일

오늘 배운 내용 벌써 정리까지 끝내셨네요! 유의미한 결과까지 얻어내셨으니 더욱 더 보람찬 하루가 되었을 것 같아요 >.<

1개의 답글