Leetcode Java Maximum Difference Between Even and Odd Frequency I
업데이트:
문제
코드
class Solution {
public int maxDifference(String s) {
int[] counts = new int[26];
for (char c : s.toCharArray()) {
counts[c - 'a']++;
}
int odd = Integer.MIN_VALUE;
int even = Integer.MAX_VALUE;
for (int count : counts) {
if (count != 0) {
if (count % 2 == 1) {
odd = Math.max(odd, count);
} else {
even = Math.min(even, count);
}
}
}
return odd - even;
}
}
결과
설명
-
문자열 s에서 홀수번 발생한 문자와 짝수번 발생한 문자의 차이가 가장 큰 값을 반환하는 문제이다.
- 문제 풀이에 필요한 변수를 정의한다.
- counts는 문자열 s 내 문자의 갯수를 계산하기 위한 변수로, 정수 배열로 초기화 후 s의 각 문자를 순차적으로 반복하여 갯수를 넣어준다.
- odd와 even은 홀수번, 짝수번 발생한 문자의 갯수를 계산하기 위한 변수로, 정수의 가장 작은 값과 큰 값으로 초기화한다.
- counts를 순차적으로 count에 넣어 아래를 반복한다.
- count가 0이 아닌 경우만 아래를 수행한다.
- count가 홀수인 경우, odd에 odd와 count 중 큰 값을 넣어준다.
- count가 짝수인 경우, even에 even과 count 중 작은 값을 넣어준다.
- count가 0이 아닌 경우만 아래를 수행한다.
- 3번을 통해 가장 큰 홀수 값인 odd와 가장 작은 짝수 값인 even의 차잇값을 주어진 문제의 결과로 반환한다.
소스
Sample Code는 여기에서 확인 가능합니다.
댓글남기기