균형잡힌 문자열이 하나 주어짐
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);
}
}
'코테 기록' 카테고리의 다른 글
구름 구름스퀘어 java 답 (0) | 2024.03.15 |
---|---|
백준 10610번 30 자바 풀이 (0) | 2022.12.27 |
백준 11399번 ATM 자바 풀이 (0) | 2022.12.27 |
백준 11047번 동전 0 자바 풀이 (0) | 2022.12.26 |
백준 2875번 대회 or 인턴 자바 풀이 (0) | 2022.12.26 |