코테 기록
leetcode 1221. Split a String in Balanced Strings 자바 코드
배성인
2023. 5. 8. 13:55
균형잡힌 문자열이 하나 주어짐
R과L로 균형잡힌 문자열을 몇개 낼 수 있는지 구하는 문제
그리디 알고리즘 썼음
작성한 코드
class Solution {
public static int calculater(String s) {
int count = 0;
int balance = 0;
int cal = 0;
for (char c :s.toCharArray()) {
if(c == 'R') {
cal = 1;
} else {
cal = -1;
}
balance += cal;
if(balance == 0) {
count ++;
}
}
return count;
}
}
테스트코드
import org.junit.jupiter.api.*;
import static org.assertj.core.api.Assertions.*;
@TestMethodOrder(MethodOrderer.OrderAnnotation.class)
@TestInstance(TestInstance.Lifecycle.PER_CLASS)
public class SolutionTest {
Solution solution;
@BeforeAll
void 세팅() {
solution = new Solution();
}
@Test
@Order(1)
void 테스트케이스1() {
assertThat(solution.calculater("RLRRLLRLRL")).isEqualTo(4);
}
@Test
@Order(2)
void 테스트케이스2() {
assertThat(solution.calculater("RLRRRLLRLL")).isEqualTo(2);
}
@Test
@Order(3)
void 테스트케이스3() {
assertThat(solution.calculater("LLLLRRRR")).isEqualTo(1);
}
}