Problem Statement
When the Christmas dinner is over, it's time to sing carols. Unfortunately, not all the family members know the lyrics to the same carols. Everybody knows at least one, though.
You are given a
Definition
- Class:
- CarolsSinging
- Method:
- choose
- Parameters:
- String[]
- Returns:
- int
- Method signature:
- int choose(String[] lyrics)
- (be sure your method is public)
Constraints
- lyrics will contain between 1 and 30 elements, inclusive.
- Each element of lyrics will contain between 1 and 10 characters, inclusive.
- Each element of lyrics will contain the same number of characters.
- Each element of lyrics will contain only 'Y' and 'N' characters.
- Each element of lyrics will contain at least one 'Y' character.
Examples
{"YN","NY"}
Returns: 2
Both carols need to be sung.
{"YN","NY","YN"}
Returns: 2
{"YN","YY","YN"}
Returns: 1
Everybody knows the first carol, so singing just that one is enough.
{"YN"}
Returns: 1
{"Y"}
Returns: 1
{"YNN","YNY","YNY","NYY","NYY","NYN"}
Returns: 2
Singing the best known carol is not always the optimal strategy. Here, the optimal way is to pick the first two carols even though four people know the third one.
{"NYYYY","YNNYN","NNNYY"}
Returns: 1
{"NYNNNYNYY","YNNYNNYNY","YNYYNYNNN","YYNNYYYNY","NNYYYNYYY","YNNYNNNYY","YYNNYNYNN","NYYYNNYYY","NYYNYNYNY"}
Returns: 2
{"YNYYYYY","NNNNNNY","YYNYNNY","YNYYYNN","YNNNNYN","NNYYYYN","YYYNYNY"}
Returns: 3
{"YNYNYYYYY","YYNYNYNYY","YYNNYYYNY","NNYNNNNYN","NYNYYYYNN","YYYNYNNYN","YNYNYNNNY","YYYYYYNYY","YYYNYNYYY","NYNYNYNYN","NYNYNNYYY","NYYYNNNYY","YYNNNYYYY","NYYNYNYYY","NNNYNYYYY","YYNNYNYNN"}
Returns: 2
{"NYNYY","NYNYY","YNYYY","NYNNY","YYYYY","NNYYY","YYNYN","YNNYN","NYYNN","NYYNY","YYNYN","NNYYN","YYNYY","NYYYN","YYNYY","NYNNN","YYYNN","YNYYY"}
Returns: 2
{"YY","YN","YY","NY","YY","YY","YN","NY","YY","YN","NY","YN","YY","NY","YY","YN","YN","NY","YY"}
Returns: 2
{"YNNYYY","YYNYYY","YNNYYN","NYYNNN","YYYNNN","YYYNNY","NYYYYY","NYNYYY","NNNNYY", "YYYYYY","YNNNNN","YYYYNY","YYNNNN","NNYYYN","NNNNYY","YYYNNN","NYNNYN","YNNYYN", "YYNNNY","NYYNNY","NNYYYN","YNYYYN","NNNYNY","YYYYNN","YYNYNN","NYYNYY","YYNYYN"}
Returns: 4
{"NYYY","YYYY","YNYY","YNYY","NYNY","NYNY","NNYY","NYNN","YNNY","NNYN","YYNN","NYYY","YNYY","NYYY","NYNN","YYYN","YYNN","NNYY","YYNN","NYYN","NYYN","NYYY","YYYY","YYYN","YNYN"}
Returns: 3
{"YNYNYNYNYY","YNYNYYYYNN","NNNYYYYNYN","YNYYYYYNNN","YNNYYNNYYN","YNYYNYNNYN","NYNNYNNYYY","NYNYNYNNYY","NYYYYYYNNY","YYYNYNYNNY","YYYYNYYYYY","YYNNNYYNNY","YYYNYYYYNN","YNNYYYYYYN"}
Returns: 2
{"NYNYYNYN","YYYYNNYY","NYYNYNYN","NNNNNYNY","YNNYYNYY","YNYYYYYN","YNYYYNNY","NNYYYNNN","NYYYNNNY","YNNYNNNN","NYYYNYNN","NYYYYNYN","NYYYYYNN","YNYYYYNN","NNYYYYNN","NNYNYYYN","NYNYYYNN","YYYNYYYN","YYYNNNNN","NYNYYYNY","YYNNNYYN","YYYYNNYN","NNNYNYYY","NYYNYYYY","YNNYYYYY","YYYNNYYN","NYYYYYYY","NNYNYNYN","YYYYYNNN"}
Returns: 3
{"NNYNNNYYN","YNNNYNNNN","YYNNNNYYY","YNYYNYYYY","YYYYNYYYN","YNYYYYYNN","NYYNNYYNN","YNYNNNYNY","NYNYNNNNY","YNNYNNNNN","YNNYYNNNN","NNYNYYYYN","NYNNNYYNY","NYYYYNYNY","NYYNNYYNY","NYNNNYYYN","NYNNYYYNN","YYYYYYYYY","YYYNYNYYY","YNYNNYYNN","YNYNNYNNN","NNNNNYYYN","NNNYNNNNN","YNYNYNYYY","NYYNNYNNY","YYNNYYYNN"}
Returns: 4
{"YYYYNNN","NYNYYNN","YNNYNYN","YNNYNNY","YNYNYYN","YNYNNYN","YYNNYNN","NYNNNYY","YNNYNNN","YNNNNNY","NNYYYNN","YYNYYYY","YYYYYYN","YYYNYNN","YNYNYNY","YNNYNYN","NNYYNNN","YNNYNNY","NYYYYNY","YNYYNYN","YYNYNNY","YYNYYYN","YYYNYYY","NNYNNNY","NYYYNNY","NYNYYYN","YYNNYYY"}
Returns: 3
{"YYYNNYYNN","NNNNNNYYY","NNNYYYNNN","NYYNYYNYN","YYNNNYYYY","NNYNYNNYY","YNYNNYYNN","NYNYYYYYY","YNYNYYYNY","NYYYYYNNN","YNNNYYYNY","YYYNNYNNN","NNNYYYNYY","YYNYNNYYN","NYNNNYNYN","NNYYYNNYN","YYNNNNYNY","NYYYYYNNY","YYNYYNYYN","YYNYNNYNY","NNYYYYNYY","YNYYYNYYY","YNYYYYYYN","YNNYNYNYY","YNYNNNYNN","YNYYYNYYY"}
Returns: 3
{"YYNYYYYNNN","NYYYNYNYYY","YYNNYNYNNN","YYNYNNYYNN","YYYYNNNYYY","YYNNNYYNYN","NYYYNNNNYN","YNYYNNYYNY","YYYNNYYYNY","YNYYYYYNYY","YNYNYNYNNN","YNYNNNYYYY","YYYYNNNYYN","YYYYYYNYYY","NNNNYNNYNY","YNNYYYYNYY","NNYYNYYYYN","YYYNYYYYNY","NNYYYNNNYN","NYYYYNYNYN","YYYYYYNYNY","NNNYYNYNYY","NYNYYYYYNY","NYYNYYNNNN","YYYNNNYNYN","NYNNYNYYYY","NYYYYNNYYY","YYNYYNYYNY"}
Returns: 3
{"YYYNYNNYYY","NYYYYNYNYY","YYYYYYNNNN","YYNYYYNYYY","NNNYYYYYYY","YYNNNNYYYN","YYYYNNNYNY","NYNYNYYNYN","NYYNNYYYYY","NNYNYYYYYY","YNNYYYNYYY","NYNNYYYNNN","YNNYNNNYNN","YYNNYYYNYY","YYNYYYYYNY","YYYNYNNNYY","YYNYNNNYYN","YYYYNYYYYN","NYNNNNYNYY","YNNNYYNYNY","YNNYNYNYYY","NNNNYNYNNY","NYNNYYYNYN","NYYNYNYYYN","YNYYYNYYYN","YYNNYNNYNY","YYYYYYYYNY"}
Returns: 2
{"YNYYYY","YYYNYY","NYNNNY","NNYYNY","NYNYYN","YYYNYY","YNYNYY","YNYNNN","YYYNYN","NYYYNN","YYYYNY","NNYYNN","YYYYYN","YNYYNN","YNNNNY","YNNYYN","NYNNYN","NYYNNY","YYYYYY","NNNNYN","YNYYYN","NNNNYN","NYYYNN","YNNNYY","YNNYNN","NNNYYN","NNYYYY"}
Returns: 4
{"NNNNNNYN","NNNNNNNY","NNNNNNYN","NNNNNNNY","NNNYNNNN","NNNNNNYN","YNNNNNNN","YNNNNNNN","YNNNNNNN","NNNNNNYN","NNNNNNYN","NYNNNNNN","NNNYNNNN","NNYNNNNN","NYNNNNNN","NNNNNNNY","NNNNNNYN","NNYNNNNN","NNNNYNNN","NNNNYNNN","NNNYNNNN","YNNNNNNN","NNNNNYNN","NNNNNNYN","NNNYNNNN","YNNNNNNN","NNNNNYNN","NNYNNNNN"}
Returns: 8
{"NNYNNNNNN","NYNNNNNNN","NNNNNYNNN","NNYNNNNNN","NNNNYNNNN","NNNNNNYNN","NYNNNNNNN","NNNNNYNNN","NNNYNNNNN","NNYNNNNNN","NNYNNNNNN","NNNNNNNYN","NNNNYNNNN","NYNNNNNNN","NNNNYNNNN","NYNNNNNNN","NNNNNNYNN","NNNYNNNNN","NNNNYNNNN","NNYNNNNNN","NNNNYNNNN","NYNNNNNNN"}
Returns: 7
{"NYNNNNNNN","NYNNNNNNN","NNNNNNNYN","NNNNNNNYN","YNNNNNNNN","NNNYNNNNN","NNNNNNYNN","NNNNNYNNN","NNNNNNNNY","NNNYNNNNN","NNYNNNNNN","NNNNNNNNY","NNNYNNNNN","NNNNNNNYN","NNNNNNNYN","NNNNNNYNN","NNNYNNNNN","NYNNNNNNN","YNNNNNNNN","NNNNYNNNN","NNNNNNNNY","NNNNNYNNN","NNNNNNNYN","NNNNNNYNN","NNNNYNNNN"}
Returns: 9
{"YNNNNN","NNNNNY","NNNYNN","NYNNNN","YNNNNN","NNNYNN","NYNNNN","NNYNNN","NNNNNY","YNNNNN","NYNNNN","NNYNNN","YNNNNN","NNNNNY","YNNNNN","NNYNNN","NNYNNN","NNNNNY","YNNNNN","NNNYNN","NNYNNN"}
Returns: 5
{"NNNYNN","NNYNNN","NNYNNN","NNNNYN","NNYNNN","NNYNNN","NNNNYN","NNYNNN","NYNNNN","NYNNNN","NNNNYN","NNNNNY","NYNNNN","YNNNNN","NNYNNN","NNNYNN","NYNNNN","NYNNNN","NNYNNN","YNNNNN","NNNNNY"}
Returns: 6
{"YNNYNNNNNN","NNNNNYNYNN","NNNNYNNNYN","NNYNNNYNNN","NNNNNYNNNY","NNYNNNNNNY","NNNNNNNYYN","NNYNNNNNYN","NNNNNNNNYY","NNNYNNNYNN","YNNNNNNNNN","NNYNNNNNNY","NNNYNNNNNY","NNNYYNNNNN","NNNNNNYNNY","YNYNNNNNNN","NYNNYNNNNN","NNNNNYNNNY","NNNNNNNNYY","YNNNNNNNYN","NNNNNYYNNN"}
Returns: 6
{"NNYNNY","NNNYNY","NNYNYN","YNNNYN","NYNNNY","YNNYNN","NNYNYN","NYYNNN","NYNNNY","NNNYYN","NNYNYN","NNYNNY","NNNYNY","YNNNYN","YNNNNY","NNNYYN","YNYNNN","NNNYYN","YNYNNN","NNYYNN","NYNNNY","NYNNYN","NNYNNY","NNYNNY","NYYNNN","YYNNNN"}
Returns: 4
{"NNNNNNNY","NNNNNNNY","NNYNNNYN","NNYNNNYN","NNYNNNYN","NNYNNNYN","NNYNNYNN","NNNNNYNN","NYNNNYNN","NYNNNYNN","NYNNYNNN","NYNNYNNN","YNNNYNNN","YNNNYNNN","YNNYNNNN","YNNYNNNN","YNNYNNNN","NYNYNNNN"}
Returns: 5
{"YNNNNNNN","NYNNNNNN","NYNNNNNN","NYNNNNNN","NYNNNNNY","NNYNNNNY","NNYNNNNY","NNYNNNNY","NNYNNNNY","NNNYNNNN","NNNYNNNN","NNNYNNNY","NNNYNNNY","NNNNYNNY","NNNNYNNY","NNNNYNNY","NNNNYNNN","NNNNNYNN"}
Returns: 6
{"NYNNNNNY","NNNYNNNY","NNNNYNNN","NNNYNNNY","NNYNNNNY","NNNYNNNY","NYNNNNNN","YNNNNNNN","NYNNNNNN","NNNNYNNN","NNYNNNNY","NNNNYNNY","NNYNNNNY","NNYNNNNY","NNNNYNNY","YNNNNNNN","NNNYNNNN","NNNNYNNY"}
Returns: 5
{"YYN","YYN","NYN","YYN","NNY","YNY"}
Returns: 2
{"YYN","YYN","NYN","YYN","NNY","YNY","YNY"}
Returns: 2
{"YYN","NYY","YNY","YNY","YNY","NNY","YNN"}
Returns: 2
{"YYYYYYYYYY"}
Returns: 1
{"NNNNNNNNNY"}
Returns: 1
{"YNNNNNNNNN"}
Returns: 1
{"NNNNNNNNNY","NNNNNNNNNY","NNNNNNNNNY","NNNNNNNNNY","NNNNNNNNNY","NNNNNNNNNY","NNNNNNNNNY","NNNNNNNNNY","NNNNNNNNNY","NNNNNNNNNY","NNNNNNNNNY","NNNNNNNNNY","NNNNNNNNNY","NNNNNNNNNY","NNNNNNNNNY","NNNNNNNNNY","NNNNNNNNNY","NNNNNNNNNY","NNNNNNNNNY","NNNNNNNNNY","NNNNNNNNNY","NNNNNNNNNY","NNNNNNNNNY","NNNNNNNNNY","NNNNNNNNNY","NNNNNNNNNY","NNNNNNNNNY","NNNNNNNNNY","NNNNNNNNNY","NNNNNNNNNY"}
Returns: 1
{"NNNNNNNNNY","NNNNNNNNYN","NNNNNNNYNN","NNNNNNYNNN","NNNNNYNNNN","NNNNYNNNNN","NNNYNNNNNN","NNYNNNNNNN","NYNNNNNNNN","YNNNNNNNNN","NYNNNNNNNN","NNYNNNNNNN","NNNYNNNNNN","NNNNYNNNNN","NNNNNYNNNN","NNNNNNYNNN","NNNNNNNYNN","NNNNNNNNYN","NNNNNNNNNY","NNNNNNNNYN","NNNNNNNYNN","NNNNNNYNNN","NNNNNYNNNN","NNNNYNNNNN","NNNYNNNNNN","NNYNNNNNNN","NYNNNNNNNN","YNNNNNNNNN","NYNNNNNNNN","NNYNNNNNNN"}
Returns: 10
{"YNNNNNNNNN", "NYNNNNNNNN", "NNYNNNNNNN", "NNNYNNNNNN", "NNNNYNNNNN", "NNNNNYNNNN", "NNNNNNYNNN", "NNNNNNNYNN", "NNNNNNNNYN", "NNNNNNNNNY", "YNNNNNNNNN", "NYNNNNNNNN", "NNYNNNNNNN", "NNNYNNNNNN", "NNNNYNNNNN", "NNNNNYNNNN", "NNNNNNYNNN", "NNNNNNNYNN", "NNNNNNNNYN", "NNNNNNNNNY", "YNNNNNNNNN", "NYNNNNNNNN", "NNYNNNNNNN", "NNNYNNNNNN", "NNNNYNNNNN", "NNNNNYNNNN", "NNNNNNYNNN", "NNNNNNNYNN", "NNNNNNNNYN", "NNNNNNNNNY" }
Returns: 10
{"YNNNNNNNNN", "NYNNNNNNNN", "NNYNNNNNNN", "NNNYNNNNNN", "NNNNYNNNNN", "NNNNNYNNNN", "NNNNNNYNNN", "NNNNNNNYNN", "NNNNNNNNYN", "NNNNNNNNNY", "YNYYYNNNNN", "YYYNYYYYNY", "YNYYYYNNNN", "NNNYYYYYYN", "NNYYYNNNYY", "YYNYYYYNNN", "NYNYYYNNYN", "YNYYYNNYYN", "YYNNNNYYYY", "NYYYNYYNNY", "NNYYYNYYYN", "YNYYYNYYYN", "NNYYYNNYNY", "YYNYYYYYNN", "YYNYYYNYNN", "NYYNNYYYYY", "YYNNYYYYYN", "YYNNNNYYYY", "NYYYNYYNNY", "NNYYYNYYYN" }
Returns: 10
{"YNNNNNNNNN", "NYNNNNNNNN", "NNYNNNNNNN", "NNNYNNNNNN", "NNNNYNNNNN", "NNNNNYNNNN", "NNNNNNYNNN", "NNNNNNNYNN", "NNNNNNNNYN", "NNNNNNNNNY", "NNNNNNNNNY" }
Returns: 10
{"YNNYYY", "YYNYYY", "YNNYYN", "NYYNNN", "YYYNNN", "YYYNNY", "NYYYYY", "NYNYYY", "NNNNYY", "YYYYYY", "YNNNNN", "YYYYNY", "YYNNNN", "NNYYYN", "NNNNYY", "YYYNNN", "NYNNYN", "YNNYYN", "YYNNNY", "NYYNNY", "NNYYYN", "YNYYYN", "NNNYNY", "YYYYNN", "YYNYNN", "NYYNYY", "YYNYYN" }
Returns: 4
{"YNY", "YYN" }
Returns: 1
{"YNNNN", "NYNNN", "NNYNN", "NNNYN", "NNNNY" }
Returns: 5
{"NNNNNYYY", "YYNNNNNN", "YYYYNNNN", "NNNNNYYY", "NNNYYYNN" }
Returns: 2
{"NNNNNNNNNY", "NNNNNNNNNY", "NNNNNNNNNY", "NNNNNNNNNY", "NNNNNNNNNY", "NNNNNNNNNY", "NNNNNNNNNY", "NNNNNNNNNY", "NNNNNNNNNY", "NNNNNNNNNY", "NNNNNNNNNY", "NNNNNNNNNY", "NNNNNNNNNY", "NNNNNNNNNY", "NNNNNNNNNY", "NNNNNNNNNY", "NNNNNNNNNY", "NNNNNNNNNY", "NNNNNNNNNY", "NNNNNNNNNY", "NNNNNNNNNY", "NNNNNNNNNY", "NNNNNNNNNY", "NNNNNNNNNY", "NNNNNNNNNY", "NNNNNNNNNY", "NNNNNNNNNY", "NNNNNNNNNY", "NNNNNNNNNY", "NNNNNNNNNY" }
Returns: 1
{"YYYYYNNNNN", "NNNNNYYYYY", "YYYYYYNNNN", "YYNNNNNNNN", "NYYNNNNNNN", "NNYYYNNNNN", "NNNYYYYYNN", "NNNYYYYYYN", "NNNYYNNNNN", "NNNNNNNYYY", "YNNNNNNNNN", "NYNNNNNNNN", "NNYNNNNNNN", "NNNYNNNNNN", "NNNNYNNNNN", "NNNNNYNNNN", "NNNNNNYNNN", "NNNNNNNYNN", "NNNNNNNNYN", "NNNNNNNNNY", "YYNNNNNNNN", "NYYNNNNNNN", "NNYYYNNNNN", "NNNYYYYYNN", "NNNYYYYYYN", "NNNYYNNNNN", "NNNNNNNYYY", "YNNNNNNNNN", "NYNNNNNNNN", "NNYNNNNNNN" }
Returns: 10
{"YNNNNNNNNN", "NYNNNNNNNN", "NNYNNNNNNN", "NNNYNNNNNN", "NNNNYNNNNN", "NNNNNYNNNN", "NNNNNNYNNN", "NNNNNNNYNN", "NNNNNNNNYN", "NNNNNNNNNY" }
Returns: 10
{"YYNNNNNNNN", "YNNNNNNNNN", "NNYNNNNNNN", "NNNYNNNNNN", "NNNNYNNNNN", "NNNNYNNNNN", "NNNNYNNNNN", "NNNNNYNNNN", "NNNNNNYNNN", "NNNNNNNYNN", "NNNNNNNNYN", "NNNNNNNNNY", "NYNNNNNNNN", "YNNNNNNNNN", "NNYNNNNNNN", "NNNNYNNNNN", "NNNNNYNNNN", "NNNNNNYNNN", "NNNNNNNYNN", "NNNNNNNNYN", "NNNNNNNNNY", "NYNNNNNNNN", "YNNNNNNNNN", "NNYNNNNNNN", "NNNNYNNNNN", "NNNNNYNNNN", "NNNNNNYNNN", "NNNNNNNYNN", "NNNNNNNNYN", "NNNNNNNNNY" }
Returns: 10
{"NYYNNNNNNY", "NYYNNNNNNY", "NYYNNNNNNY", "NYYNNNNNNY", "NYYNNNNNNY", "NYYNNNNNNY", "NYNNNNNNNN", "NYNNNNNNNN", "NYNNNNNNNN", "NYNNNNNNNN", "NYNNNNNNNN", "NYNNNNNNNN", "NYNNNNNNNN", "NYNNNNNNNN", "NYNNNNNNNN", "NYNNNNNNNN", "NYNNNNNNNN", "NYNNNNNNNN", "NYNNNNNNNN", "NYNNNNNNNN", "NYNNNNNNNN", "NYNNNNNNNN", "NYNNNNNNNN", "NYNNNNNNNN", "NYNNNNNNNN", "NYNNNNNNNN", "NYNNNNNNNN", "NYNNNNNNNN", "NYNNNNNNNN", "NNNYNNNNNN" }
Returns: 2
{"YNNYYY", "YYNYYY", "YNNYYN", "NYYNNN", "YYYNNN", "YYYNNY", "NYYYYY", "NYNYYY", "NNNNYY", "YYYYYY", "YNNNNN", "YYYYNY", "YYNNNN", "NNYYYN", "NNNNYY", "YYYNNN", "NYNNYN", "YNNYYN", "YYNNNY", "NYYNNY", "NNYYYN", "YNYYYN", "NNNYNY", "YYYYNN", "YYNYNN", "NYYNYY", "YYNNYN" }
Returns: 4
{"YYNNN", "YYNNN", "YYNNN", "YNYNN", "NNYNY", "NNYYN" }
Returns: 2
{"YYN", "YYN", "YNY", "NYN", "NNY" }
Returns: 2
{"NYN", "YYN", "YYN", "YNY", "YNY", "NNY" }
Returns: 2
{"YNNY", "NYNY", "NNYY" }
Returns: 1
{"YNNNNNNNNN", "YNNNNNNNNN", "YNNNNNNNNN", "NYNNNNNNNN", "NYNNNNNNNN", "NYNNNNNNNN", "NNYNNNNNNN", "NNYNNNNNNN", "NNYNNNNNNN", "NNNYNNNNNN", "NNNYNNNNNN", "NNNYNNNNNN", "NNNNYNNNNN", "NNNNYNNNNN", "NNNNYNNNNN", "NNNNNYNNNN", "NNNNNYNNNN", "NNNNNYNNNN", "NNNNNNYNNN", "NNNNNNYNNN", "NNNNNNYNNN", "NNNNNNNYNN", "NNNNNNNYNN", "NNNNNNNYNN", "NNNNNNNNYN", "NNNNNNNNYN", "NNNNNNNNYN", "NNNNNNNNNY", "NNNNNNNNNY", "NNNNNNNNNY" }
Returns: 10
{"YYN", "YYN", "YNY", "YNY", "NYN", "NNY" }
Returns: 2