어흥
[해커랭크] Alternating Characters (Java) 본문
728x90
반응형
1. 주의할 점
- 재귀형식으로 풀지 말것(최대 10^5번 → StackOverFlow 발생)
2. 구현
- 파라미터로 넘겨받은 문자열의 시작을 A 혹은 B로 지정해두고 Find_Result() 함수로 넘긴다
- Find_Result함수에선 현재 비교하려는 문자가 C가 아니라면 삭제의 개수를 나타내는 Cnt를 ++시킨다
- 만약 비교하려는 문자가 C라면, 삼항연산자를 통해 C의 값을 수정한다
- 함수의 Return값과 Result를 비교하여 최소값을 구한다
static int find_result(String s, char c){
int cnt=0;
for(int i=0;i<s.length();i++){
char tc = s.charAt(i);
if(tc!=c) cnt++;
else{
char next = c=='A'? 'B' : 'A';
c = next;
}
}
return cnt;
}
// Complete the alternatingCharacters function below.
static int alternatingCharacters(String s) {
int result=Integer.MAX_VALUE;
result = Math.min(result,find_result(s,'A'));
result = Math.min(result,find_result(s,'B'));
return result;
}
728x90
반응형
'알고리즘 > HackerRank' 카테고리의 다른 글
[해커랭크] Matrix Layer Rotation (Java) (0) | 2022.03.10 |
---|---|
[해커랭크] Chocolate Feast (C++) (0) | 2021.08.11 |
[해커랭크] Game of Thrones - I (C++) (0) | 2021.03.11 |
[해커랭크] Anagram (C++) (0) | 2021.02.24 |
[해커랭크] Palindrome Index (C++) (0) | 2021.02.23 |
Comments