2^k 개에 해당하는 binary code를 모두 얻어야 된다. 2^k 내에 있는 binary code를 count하고 count를 하나씩 지워나가는 식으로 체크한다. count를 지워나가는 도중 count가 0으로 떨어지지 않으면 False를 return 한다.
Problem Solution 1) 리스트 반복
로마자는 왼쪽부터 오른쪽으로 큰 수부터 작은 수 순으로 정렬하기 때문에 작은 수에 해당하는 로마자가 큰 수에 해당하는 로마자보다 앞에 나올 경우 빼면 된다.dict()에 두 문자로 이루어진 키-값 쌍도 정의한 후 input 값에서 두 문자로 이루어진 키 값을 찾는다.
Problem Solution 1) 괄호 짝을 가진 dict() 활용
isalnum() : 영문자, 숫자 여부를 판별하는 함수pop(index) : pop(0) 이면 리스트의 맨 앞의 값을 가져온다. pop() 이면 맨 뒤의 값을 가져온다.리스트만으로 풀 수 있지만, 데크(Deque)를 명시적으로 선언하면 속도를 좀 더 높일 수 있다.리
all() 연산때문에 비교 연산을 일찍 종료할 수 없음. LCP가 사전에 확정되어도 나머지 비교도 진행되는 문제가 생긴다2) 솔루션의 비교 조기 종료가 안되는 문제를 아래와 같이 해결
투 포인터를 이용한 전통적인 방식은 2개의 포인터를 이용해 범위를 조정해가며 풀이하는 방식. 여기서는 점점 더 범위를 좁혀 가며 스왑하는 형태로 풀이.리턴없이 리스트 내부를 직접 조작하라는 제약사항이 있으므로 s 내부를 스왑하는 형태로 풀이s = s\[::-1] 로 풀
개수를 담아두는 변수는 딕셔너리를 사용하며 defaultdict()를 사용해 int 기본값이 자동으로 부여되게 했다. 따라서 여기서는 키 존재 유무를 확인할 필요없이 즉시 counts\[word] += 1 을 수행할 수 있다.정규식\\w : 단어 문자(Word Char
Problem Solution 1) 투 포인터로 접근
Problem Solution 1) Sliding window 문자열에 있는 문자를 key로 하고, 해당 문자의 index(위치)를 value로 집어넣는 dict()를 정의한다. 이 때 문자열에서 해당 문자의 반복이 나타날 경우 dict()의 index는 마지막 in
Problem Solution 1)
우선 두 개의 포인터를 사용한다. 2칸 짜리 윈도우를 가지는 포인터와 3칸 짜리 윈도우를 가지는 포인터를 구성한다. 팰린드롬은 "bb"처럼 짝수 일 때도 있고, "bab"처럼 홀수 일 때도 있기 때문. 따라서 짝수, 홀수 모든 경우에 대해 판별한다.2개의 윈도우 포인터