순열 Permutation 알고리즘
{a, b, c, d} 로 순열을 만드는 것은 4! = 24개 {a, b, c, d}의 모든 순열 = 첫 원소가 a이면서 {b, c, d}의 모든 순열 + 첫 원소가 b이면서 {a, c, d}의 모든 순열 + 첫 원소가 c이면서 {a, b, d}의 모든 순열 + 첫 원소가 d이면서 {a, b, c}의 모든 순열 위의 식을 보면 함수를 recursive 하게 짤수 있다는 것을 알수 있습니다. 첫 원소가 a이면서 {b, c, d}의 모든 순열 = 앞에 고정된 원소 a, b 이면서 {c, d}의 모든 순열 + 앞에 고정된 원소 a, c 이면서 {b, d}의 모든 순열 + 앞에 고정된 원소 a, d 이면서 {b, c}의 모든 순열 여기서 앞에 고정된 원소 들을 prefix string 전체 원소를 set S라고..
더보기
@Data 어노테이션
클래스 레벨에서 @Data 어노테이션을 붙여주면, @Getter ,@Setter, @RequiredArgsConstructor, @ToString, @EqualsAndHashCode을 한꺼번에 설정해주는 매우 유용한 어노테이션 입니다. 접근자, 설정자, final 또는 @NonNull 필드 값을 파라미터로 받는 생성자, toString, equals, hashCode 메소드가 자동으로 만들어 집니다. cf) @NonNull = 파라미터나 메소드 위에 붙어 null이 아닌 값이 매개변수 거나 return 값이어야 한다.
더보기