|
通りすがり |
|
ExcelVBAだと、こんな感じかなぁ〜
Public Sub 第790回問題() Cells.Clear Dim cards() As String cards = Split("赤1,白1,青1,緑1,赤2,白2,青2,緑2,赤3,白3,青3,緑3,赤4,白4,青4,緑4,赤5,白5,青5,緑5", ",") Dim fcards(1 To 6) As String Dim count As Integer Fetch LBound(fcards), fcards, LBound(cards), cards, count Cells(1, 1) = count End Sub Private Sub Fetch(p As Integer, fcards() As String, n As Integer, cards() As String, count As Integer) If p > UBound(fcards) Then Dim colors As String Dim nos As String Dim s As String Dim i As Integer For i = LBound(fcards) To UBound(fcards) If InStr(colors, Left(fcards(i), 1)) = 0 Then colors = colors + Left(fcards(i), 1) If InStr(nos, Right(fcards(i), 1)) = 0 Then nos = nos + Right(fcards(i), 1) s = s + fcards(i) + " " Next If Len(colors) = 3 And Len(nos) = 3 Then count = count + 1 Cells(count, 2) = s End If Exit Sub End If If n > UBound(cards) Then Exit Sub Fetch p, fcards, n + 1, cards, count fcards(p) = cards(n) Fetch p + 1, fcards, n + 1, cards, count End Sub |
|
5月10日(木) 10:26:35
39317 |