teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

3

修正の修正

2018/04/15 23:04

投稿

LouiS0616
LouiS0616

スコア35678

answer CHANGED
@@ -19,7 +19,7 @@
19
19
 
20
20
  first_record = read_record('1234')
21
21
  first_winner = sorted(
22
- [get_winner(first_record, *player_pair) for player_pair in cards], key=int
22
+ [get_winner(first_record, *players) for players in cards], key=int
23
23
  )
24
24
 
25
25
  second_record = read_record(first_winner)
@@ -54,7 +54,7 @@
54
54
  players = list('1234')
55
55
  while len(players) != 1:
56
56
  record = read_record(players)
57
- players = [get_winner(record, *players) for players in cards]
57
+ players = [get_winner(record, *player_pair) for player_pair in cards]
58
58
 
59
59
  cards = list(
60
60
  zip(*[iter(players)]*2)

2

コード修正

2018/04/15 23:04

投稿

LouiS0616
LouiS0616

スコア35678

answer CHANGED
@@ -19,7 +19,7 @@
19
19
 
20
20
  first_record = read_record('1234')
21
21
  first_winner = sorted(
22
- [get_winner(first_record, *players) for players in cards], key=int
22
+ [get_winner(first_record, *player_pair) for player_pair in cards], key=int
23
23
  )
24
24
 
25
25
  second_record = read_record(first_winner)

1

追記

2018/04/15 23:02

投稿

LouiS0616
LouiS0616

スコア35678

answer CHANGED
@@ -28,4 +28,38 @@
28
28
  )
29
29
  ```
30
30
 
31
- [Wandbox](https://wandbox.org/permlink/hsolmIdzUMe1i1sx)
31
+ [Wandbox](https://wandbox.org/permlink/hsolmIdzUMe1i1sx)
32
+
33
+ 要件によっては
34
+ ---
35
+ 単に一位を出力すればいいならもうちょっとスマートになるんですがね。
36
+ ```Python
37
+ def get_winner(record, player1, player2):
38
+ if record[player1] < record[player2]:
39
+ return player1
40
+
41
+ return player2
42
+
43
+
44
+ def read_record(player_names):
45
+ return {
46
+ p: int(r) for p, r in zip(player_names, input().split())
47
+ }
48
+
49
+
50
+ cards = [
51
+ input().split() for _ in range(2)
52
+ ]
53
+
54
+ players = list('1234')
55
+ while len(players) != 1:
56
+ record = read_record(players)
57
+ players = [get_winner(record, *players) for players in cards]
58
+
59
+ cards = list(
60
+ zip(*[iter(players)]*2)
61
+ )
62
+ players = sorted(players, key=int)
63
+
64
+ print(*players)
65
+ ```