문제 금지된 단어를 제외한 가장 흔하게 등장하는 단어를 출력하라. 대소문자 구분을 하지 않으며, 구두점(마침표, 쉼표) 또한 무시한다. 예제 1 입력 paragraph = "Bob hit the ball, the hit BALL flew far after it was hit." banned = ["hit"] 출력 "ball" 다음과 같은 조건에 맞게 입력값에 대한 전처리 작업이 필요합니다. 1. 입력값에 대소문자가 섞여 있으므로, 소문자 처리 2. 쉼표 등 구두점 존재 이후 문자 배열에 대해 각 요소의 개수를 구한 후, 가장 높은 갯수의 단어를 반환하도록 구현해야합니다. 리스트 컴프리헨션, Counter 객체를 사용한 풀이 먼저 쉼표, 마침표 등의 구두점을 정규식을 사용해 제거하는 전처리 과정을 수행하도..
Computer Science/알고리즘 - 문자열 처리
문제 로그를 재정렬하라. 기준은 다음과 같다 1. 로그의 가장 앞 부분은 식별자다. 2. 문자로 구성된 로그가 숫자 로그보다 앞에 온다. 3. 식별자는 순서에 영향을 끼치지 않지만, 문자가 동일할 경우 식별자 순으로 한다. 4. 숫자 로그는 입력 순서대로 한다. 예제 1 입력 ["dig1 8 1 5 1", "let1 art can", "dig2 3 6", "let2 own kit dig", "let3 art zero"] 출력 ["let1 art can", "let3 art zero", "let2 own kit dig, "dig1 8 1 5 1", "dig2 3 6"] 요구 조건을 깔끔하게 처리하라라는 문제입니다. lambda와 + 연산자를 사용해 구현해보도록 하겠습니다.(feat. isdigit()) 풀..
문제 문자열을 뒤집는 함수를 작성하라. 입력값은 문자 배열이며, 리턴 없이 리스트 내부를 직접 조작하라. 예제 1 입력 ["y", "o", "u", "n", "g"] 출력 ["g", n", "u", "o", "y"] 먼저 투 포인터를 이용한 전통적인 방식으로 구현한 후, 파이썬의 기본 기능을 이용해서 다시 구현하도록 하겠습니다. 여기서 "리턴 없이 리스트 내부를 직접 조작하라"는 제약 사항은 문자열의 내부를 스왑하는 형태로 풀이하라는 의미입니다. 투 포인터를 이용한 배열 요소 스왑 배열의 인덱스를 가리키는 left, right 을 각각 초기화한 후, 각 배열의 원소를 변경해나가는 방식입니다. def reverseString(s: list[str]) -> list[str] : left, right = 0,..
팰린드롬(Pelindrome)이란? 앞뒤가 똑같은 단어나 문장으로, 뒤집어도 같은 말이 되는 단어 또는 문장을 팰린드롬이라 합니다. 우리 말로는 "소주 만 병만 주소" 같은 문장을 일컫습니다. 주어진 문자열이 팰린드롬인지 확인하라. 대소문자를 구분하지 않으며, 영문자와 숫자만을 대상으로 한다. 먼저 해당 문제의 솔루션을 리스트를 사용하여 구현하고, 성능 개선을 위해 Deque 자료형과 문자열 슬라이싱을 사용해 코드를 작성해보도록 하겠습니다! 리스트로 반환 영문자, 숫자 여부를 판별하는 isalnum() 함수를 사용하여 문자열 리스트에 대입한 후, 첫 번째 문자와 마지막 문자를 pop() 함수를 통해 비교해나가는 방식입니다. def isPalindrome(s: str) -> bool : strs = [] ..