▼ Why ? 이번 문제도 이전 문제들처럼 문자열에서 문자들의 빈도수를 체크해 해결하는 문제이고, 문자의 빈도수를 다루는 문제들에 익숙해지기 위해 풀어보았다. ▼ 팰린드롬 (Palindrome) 문제 정보 문자열이 주어지면 해당 문자열의 문자들을 가지고 만들 수 있는 최대길이 팰린드롬을 만들고 그 길이를 구하세요. 문자열은 소문자로만 이루어져 있습니다. 만약 "abcbbbccaaeee" 가 주어진다면 만들 수 있는 가장 긴 팰린드롬은 "ebbcaaacbbe"이고 답은 11입니다. 입출력 예 제한사항 s의 길이는 1,000을 넘지 않습니다. 어떻게 해결해야 할까? 문자들의 빈도수를 다루는 문제이기 때문에, 일단 key(문자)-value(빈도수)를 쌍으로 하는 HashMap class의 instance(' ..
▼ Why ?" [PCCP] 문자열과 해시함수 [4] " 를 풀면서 정렬하여 해결하는 방식을 생각하다가 ' Arrays.sort() ' 와 ' Collection.sort() ' 의 차이는 알아두는 것이 좋을 것 같아 찾아보게 되었다▼ Arrays.sort() 간단하게 배열을 정렬하는 메서드라고 할 수 있다함수의 내부를 살펴보면, 기본형(Primitive) 타입의 배열을 매개변수로 받았을 때, DualPivotQuicksort을 채택한 것을 알 수 있다// Arrays.javapublic static void sort(int[] a) { DualPivotQuicksort.sort(a, 0, a.length - 1, null, 0, 0);} 🔻 DualPivotQuicksort는 두 개의 피..
▼ Why ? 이전 문제처럼 입력받은 문자열에서 문자들의 빈도수를 다루는 문제여서 먼저 풀어보려고 한다. ▼ 자기 분열수 문제 정보 자기 분열수란 배열의 원소 중 자기 자신의 숫자만큼 빈도수를 갖는 숫자를 의미합니다. 만약 배열이 [1, 2, 3, 1, 3, 3, 2, 4] 라면 1의 빈도수는 2, 2의 빈도수는 2, 3의 빈도수는 3, 4의 빈도수는 1입니다. 여기서 자기 자신의 숫자와 같은 빈도수를 갖는 자기 분열수는 2와 3입니다. 매개변수 nums에 자연수가 원소인 배열이 주어지면 이 배열에서 자기 분열수 중 가장 작은 수를 찾아 반환하는 프로그램을 작성하세요. 자기 분열수가 존재하지 않으면 -1를 반환하세요. 입출력 예 제한사항 nums의 길이 3
▼ Why ? 일단 해시함수를 사용하는 것에 익숙해지기 위해 관련 문제를 계속 풀어보려고 한다 ▼ 같은 빈도수 만들기 문제 정보 소문자 a, b, c, d, e로 이루어진 문자열이 주어지면 해당 문자열에서 a, b, c, d, e의 최소의 개수를 추가하여 a, b, c, d, e의 빈도수가 동일하게 되도록 해야 합니다. 동일빈도수가 되는 최소 추가 개수를 알파벳 a, b, c, d, e순으로 배열에 저장하여 반환하는 프로그램을 작성하세요. 만약 주어진 문자열이 "aaabc" 라면 빈도수는 a:3 , b:1, c:1, d:0, e:0 이고 최소 개수를 추가하여 동일 빈도수가 되게 하려면 b를 2개, c를 2개, d를 3개, e를 3개 추가하면 모두 빈도 수가 3개로 동일해집니다. 입출력 예 제한사항 문자열..
▼ Why ? 이전 문제 [한 번 사용한 최초 문자]와 비슷한 문제이긴 하지만, 지금은 해시함수와 관련한 문제에 익숙해지는 것이 목적이기 때문에 풀어보려고 한다 ▼ 한 번만 등장한 문자 문제 정보 문자열 s가 매개변수로 주어집니다. s에서 한 번만 등장하는 문자를 사전 순으로 정렬한 문자열을 return 하도록 solution 함수를 완성해보세요. 한 번만 등장하는 문자가 없을 경우 빈 문자열을 return 합니다. 코딩테스트 연습 - 한 번만 등장한 문자 | 프로그래머스 스쿨 (programmers.co.kr) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co...
▼ Why ? 일단 해시함수를 사용하는 것에 익숙해지기 위해 관련 문제를 계속 풀어보려고 한다 ▼ 한 번 사용한 최초 문자 문제 정보 문자열에서 한번만 사용한 문자를 찾으려고 합니다. 매개변수 s에 문자열이 주어지면 한번만 사용한 문자 중 문자열에서 가장 먼저 나타난 문자의 인덱스 번호를 반환하는 프로그램을 작성하세요. 인덱스는 1부터 시작합니다. 한번만 사용한 문자가 없을 경우 -1를 반환하세요. 입출력 예 제한사항 문자열 s의 길이는 100을 넘지 않습니다. 문자열은 소문자로만 이루어져 있습니다. 어떻게 해결해야 할까? 일단 입력받은 문자열에서 ' charAt(int index) ' 메서드로 하나씩 꺼낸 문자를 키(key)로 받고, 해당 문자의 개수를 값(value)로 받을 HashMap class의..