回答編集履歴

2

潜在的なバグの修正

2018/09/13 01:54

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
@@ -92,7 +92,7 @@
92
92
 
93
93
  return all(
94
94
 
95
- e1 == e2 for e1, e2 in zip(it1, sorted(it2))
95
+ e1 == e2 for e1, e2 in zip(it1, sorted(it2, key=key))
96
96
 
97
97
  )
98
98
 
@@ -140,4 +140,4 @@
140
140
 
141
141
 
142
142
 
143
- [Wandbox](https://wandbox.org/permlink/XDDgtDuSV1FIXe3N)
143
+ [Wandbox](https://wandbox.org/permlink/XTa2SOleHEemsZnZ)

1

追記

2018/09/13 01:54

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
@@ -69,3 +69,75 @@
69
69
  [[12, 12], [13, 13], [14, 14], [23, 23], [24, 24], [34, 34]]
70
70
 
71
71
  ```
72
+
73
+
74
+
75
+ コメントを受けて
76
+
77
+ ---
78
+
79
+ あんまりクールなコードじゃないですが、いちおう。
80
+
81
+ ```Python
82
+
83
+ from itertools import tee, permutations
84
+
85
+
86
+
87
+
88
+
89
+ def is_already_sorted(iterable, *, key=lambda e: e):
90
+
91
+ it1, it2 = tee(iterable)
92
+
93
+ return all(
94
+
95
+ e1 == e2 for e1, e2 in zip(it1, sorted(it2))
96
+
97
+ )
98
+
99
+
100
+
101
+
102
+
103
+ N = int(input())
104
+
105
+ assert 0 < 2*N < 10
106
+
107
+
108
+
109
+ nums = list('123456789')[:2*N]
110
+
111
+
112
+
113
+ dst = []
114
+
115
+ for e in permutations(nums, 2*N):
116
+
117
+ left, right = e[:N], e[N:]
118
+
119
+
120
+
121
+ if not is_already_sorted(left, key=int):
122
+
123
+ continue
124
+
125
+ if not is_already_sorted(right, key=int):
126
+
127
+ continue
128
+
129
+
130
+
131
+ dst.append(''.join(e))
132
+
133
+
134
+
135
+
136
+
137
+ print(*dst, sep='\n')
138
+
139
+ ```
140
+
141
+
142
+
143
+ [Wandbox](https://wandbox.org/permlink/XDDgtDuSV1FIXe3N)