본문 바로가기

알고리즘10

문자열 매칭 수 계산 하나 빼기: 문자열을 편집하는 방법에는 세 가지 종류가 있다. 문자 삽입, 문제 삭제, 문자 교체. 문자열 두 개가 주어졌을 때, 문자열을 같게 만들기 위한 편집횟수가 1회 이내인지 확인하는 함수를 작성하라 예시 pale, ple → true pales, pale → true pale, bale → true pale, bake → false 문자열 매칭 수 >= 긴 문자열의 length - 1 이면 true를 반환하게 처리 import difflib def get_matching_character_count(str1, str2): matcher = difflib.SequenceMatcher(None, str1, str2) matching_blocks = matcher.get_matching_blocks(.. 2023. 8. 19.
문자열에 들어 있는 모든 공백을 '%20'으로 바꿔 주는 메소드를 작성하라. URL화: 문자열에 들어 있는 모든 공백을 '%20'으로 바꿔 주는 메소드를 작성하라. 최종적으로 모든 문자를 다 담을 수 있을 만큼 충분한 공간이 이미 확보되어 있으며 문자열의 최종 길이가 함께 주어진다고 가정해도 된다 (자바로 구현한다면 배열 안에서 작업할 수 있도록 문자 배열(character array)을 이용하길 바란다). URL 인코딩에 대해 궁금하다면 https://en.wikipedia.org/wiki/URL_encoding 을 참고하자. 한국어 위키에는 퍼센트 인코딩 이라고 되어있다. 이 문제를 해결하는 가장 쉬운 방법은 replace를 하는것 이겠지만, 그 것을 묻는 것은 아닐 것이다. 이 문제는 문자로 구성된 배열(character array)을 이용해 문제를 풀기를 원했고 최종적으로.. 2023. 8. 18.
문자열이 주어졌을 때, 이 문자열에 같은 문자가 중복되어 등장하는지 확인하는 알고리즘을 작성하라 중복이 없는가: 문자열이 주어졌을 때, 이 문자열에 같은 문자가 중복되어 등장하는지 확인하는 알고리즘을 작성하라 자료구조를 추가로 사용하지 않고 풀 수 있는 알고리즘 또한 고민하라. set을 이용해서 해결할 수 있다. def has_duplicate_chars(s): seen_chars = set() for char in s: if char in seen_chars: return True seen_chars.add(char) return False # 예시 input_str = "abcdefg" print(has_duplicate_chars(input_str)) # 출력: False input_str = "hello" print(has_duplicate_chars(input_str)) # 출력: True.. 2023. 8. 17.
4장 처리율 제한 장치의 설계 (2) - 알고리즘 정리 처리율 제한 알고리즘 널리 알려진 인기 알고리즘은 다음과 같은 것들이 있다. - 토큰 버킷 (token bucket) - 누출 버킷 (leaky bucket) - 고정 윈도 카운터 (fixed window counter) - 이동 윈도 로그 (sliding window log) - 이동 윈도 카운터 (sliding window counter) 토큰 버킷 알고리즘 보편적으로 사용되는 알고리즘 아마존과 스트라이프가 API 요청을 통제(throttle)하기 위해 사용 동작 원리 토큰 버킷은 지정된 용량을 갖는 컨테이너이다. 이 버킷에는 사전 설정된 양의 토큰이 주기적으로 채워진다. 토큰이 꽉 찬 버킷에는 더 이상의 토큰은 추가되지 않는다. 버킷이 가득 차면 추가로 공급된 토큰은 버려진다. 각 요청은 처리될 때.. 2023. 5. 18.