이 글에서 아이디어를 얻어서 통과했습니다.
이미 푸셨는지는 모르겠지만, 혹시 아직 푸시지 못하셨다면 도움이 되길 바라는 마음으로, 랜덤으로 입력을 만든 다음 이 코드와 제 정답코드의 결과를 비교해서 출력이 다른 걸 체크하는 방식으로 반례를 만들어왔습니다.
12 AABBCCCABCAA 출력: 4, 정답: 3 12 BBCAAABBABCC 출력: 5, 정답: 4 9 BCCAACCBB 출력: 4, 정답: 3 7 CCCBCAC 출력 :2, 정답: 1 6 CCBCAA 출력 :2, 정답: 1 5 BCBAB 출력 :2, 정답: 1 7 CBCAAAA 출력 :2, 정답: 1
hy2850 2년 전
ABC 혹은 ACB 패턴으로 세 팀이 모여있는 경우를 만들 때, 일치하지 않는 사람 수를 세는 슬라이딩 알고리즘을 구현했습니다.
ex) team = "AABAC" : A 셋, B 하나, C 하나
AAA B C
AAA C B
team += team 해서, 원형 상태를 펴서 직선으로 나열해줍니다.
이후 위 패턴과 일치하는지, 일치하지 않는다면 몇 명의 사람을 바꿔줘야 하는지 세서 최솟값을 계속 업데이트 해줍니다.
n = 1, 2, 3, 100000등의 edge case 직접 다 만들어서 체크해봤고,
직접 슬라이딩 알고리즘이 제대로 작동함을 체크했는데 WA가 뜹니다.
혹시 반례가 있을까요?