전체 글 337

[해시] - 팰린드롬의 길이

팰린드롬 길이 문자열이 주어지면 해당 문자열의 문자들을 가지고 만들 수 있는 최대길이 팰린드롬을 만들고 그 길이를 구하세요. 문자열은 소문자로만 이루어져 있습니다. 만약 "abcbbbccaaeee" 가 주어진다면 만들 수 있는 가장 긴 팰린드롬은 "ebbcaaacbbe"이고 답은 11입니다. 제한사항: • s의 길이는 1,000을 넘지 않습니다. 나의 코드 from collections import Counter def solution(s): answer = 0 CC=Counter(s) cnt=0 for x in CC: if CC[x]%2==1: cnt+=1 if cnt >1: answer=len(s)-(cnt-1) else: answer=len(s) return answer print(solution(..

[해시] -팰린드롬 확인

팰린드롬 확인 소문자로만 이루어진 문자열이 주어지면 해당 문자열의 문자들의 순서를 재배치해서 팰린드롬 (회문)을 만들 수 있는지를 확인하고 싶습니다. 만약 "abbac"같은 문자열은 문자들을 "abcba" 로 재 배치하면 팰린드롬을 만들 수 있습니다. 매개변수 s에 문자열이 주어지면 해당 문자열이 재 배치를 통해 팰린드롬을 만들 수 있으면 True를 못 만들면 False를 반환하는 프로그램을 작성하세요. 제한사항: • s의 길이는 1,000을 넘지 않습니다. 나의코드 from collections import Counter def solution(s): CC=Counter(s) cnt=0 for x in CC: if CC[x]%2==1: cnt+=1 return False if cnt > 1 else T..

[해시] -자기분열수

자기 분열수 자기 분열수란 배열의 원소 중 자기 자신의 숫자만큼 빈도수를 갖는 숫자를 의미합니다. 만약 배열이 [1, 2, 3, 1, 3, 3, 2, 4] 라면 1의 빈도수는 2, 2의 빈도수는 2, 3의 빈도수는 3, 4의 빈도수는 1입니다. 여기서 자기 자신의 숫자와 같은 빈도수를 갖는 자기 분열수는 2와 3입니다. 매개변수 nums에 자연수가 원소인 배열이 주어지면 이 배열에서 자기 분열수 중 가장 작은 수를 찾아 반환하는 프로그램을 작성하세요. 자기 분열수가 존재하지 않으면 -1를 반환하세 요. 제한사항: • nums의 길이 3

해시 자료구조

해시테이블 해시함수를 사용하여 키를 해시값으로 매핑하고, 이 해시값을 색인(index) 삼아 데이터의 값 (value)을 키와 함께 저장하는 자료구조를 해시테이블(hash table)이라고 합니다. 이 때 데이터 가 저장되는 곳을 버킷(bucket) 또는 슬롯(slot)이라고 합니다. Direct-address table 키의 전체 개수와 동일한 크기의 버킷을 가진 해시테이블을 Direct-address table이라고 합니 다. Direct-address table의 장점은 키 개수와 해시테이블 크기가 동일하기 때문에 해시충돌 문제가 발생하지 않는다는 겁니다. 하지만 전체 키 중 실제 사용되는 키의 개수가 적을 경우 메모리 효율성이 크게 떨어집니다. 대표적인것이 배열 인덱스를 키로 사용하는 방법입니다...

[배열과 연결리스트와 덱] -두수의 합-

두 수의 합 정수 수열 안에서 수열의 원소 두 개의 합이 target값이 되는 경우를 찾고 싶습니다. 매개변수 nums에 길이가 n인 수열이 주어지고, 매개변수 target에 자연수 값이 주어지면 이 수열안에서 두 개의 원소의 합이 정수 target값이 되는 두 원소를 구해 배열에 오름차순으로 담아 반환합니다. 두 개의 원소의 합이 target값이 되는 경우는 오직 한가지 뿐인 입력만 주어집니다. 한 원소를 두 번 더하는 것은 안됩니다. nums의 각 원소는 유일값입니다. 답이 없을 경우 [0, 0]을 반환합니다. 제한사항: • nums의 길이 3

[배열과 연결리스트와 덱] - 중복제거-

중복제거 오름차순으로 정렬된 수열이 주어지면 중복된 값을 제거하고 유일값으로 구성된 내림차순 수 열을 만들고 싶습니다. 매개변수 nums에 길이가 n인 수열이 주어지면 중복된 값을 제거하고 유일값만으로 구성된 내 림차순 수열을 배열에 담아 반환하는 프로그램을 작성하세요 제한사항: • nums의 길이 3

[배열과 연결리스트와덱] -수열의회전

수열의 회전 정수 수열의 원소를 회전하고 싶습니다. 매개변수 nums에 길이가 n인 수열이 주어지고, 매개변수 k에 뒤로 이동시키고 싶은 원소의 개수가 주어지면 nums의 원소 중 앞 원소 k개를 수열의 뒤쪽으로 이동하고 난 후의 수열을 반환하는 프로그램을 작성하세요. 제한사항: • nums의 길이 3