A : 둘 중 정확히 하나만 다르면 출력
B : 소문자와 대문자를 따로 관리
C : 매번 최빈값을 다른 문자와 매칭해서 지우기
D : i번째 segment에서 위치할 수 있는 가장 왼쪽 지점과 가장 오른쪽 지점을 관리
E : carry가 일어나지 않아야 하니까 각 자리마다 독립적으로 분배하기
F : 오름차순이면 Reverse를 0번 또는 2번, 내림차순이면 Reverse를 1번 사용하기
G : Functional graph라 트리 부분을 리프부터 모두 떼어내고 사이클마다 따로 풀면 됨
사이클에 1이 홀수개면 불가능, 짝수개면 인접한 1들끼리 매칭해야 하니까 왼쪽으로 매칭하는 경우와 오른쪽으로 매칭하는 경우 중에 작은 걸 고르기
와우...
난B는 그냥 맨뒤에서 부터 훑으면서 괄호지우듯이 한쌍씩 지움 D는 결국 파라메트릭서치한다는거지? 관리만해서 푸는 풀이도있나? E재밌었고 F구현 너무 힘들었음... G는 업솔빙하고 읽어야지
아 D 파라메트릭 맞음 적는걸 까먹었어
B는 매번 뒤에서부터 훑으면 n^2아닌가? 딱히 생각이 안나네
B 그냥 string 맨뒤에서 부터 훑으면서 지금까지나온 b개수 B개수 저장하면서 소문자면서 b가0보다크면 b개수만 1줄이고 그냥 지나가고 아니면 최종문자열에 추가하는걸 쭉 했음
아 거꾸로 보면 되구나 이해함