横浜へなちょこプログラミング勉強会の、第六回オフラインリアルタイムどう書く( http://atnd.org/events/34368 ) の、参考問題です。
L字型の領域が2つある。両方の L字型に含まれるマス目(どちらかではなく両方。intersection。and。)の数を計算する。
L字型は、頂点のマス3つで表現される。
最初の頂点は、L字型の角の部分の、外側の方の頂点。そこから時計回りに一つおきに頂点のマスを指定する。
x, y の値は 0〜9の整数。頂点の座標は 12
のように区切り文字なしで記されている。
3つの頂点はハイフンで区切られ、L字とL字の間はコンマで区切られる。
具体的には下図の通り:
図 |
|
|
|
|
---|---|---|---|---|
入力 |
23-94-28,89-06-51
|
11-84-58,02-73-69
|
18-41-86,77-04-32
|
81-88-23,64-58-14
|
出力 |
11
|
40
|
26
|
0
|
"11-23,45"
のように頂点が足りない、
"23-51-06,33-33-28"
のように L字型をなさない、など)には対処しなくてよい。
0
を出力する
実装ができた方は
Qiitaの記事
のコメント欄からリンクを張っていただくと見つけやすくて助かります。
解くのに何分かかったかも書いて下さると第六回の問題の難易度調整の参考になるのでありがたいです。
# | 入力 | 期待 |
---|---|---|
#1 |
23-94-28,89-06-51
|
11
|
#2 |
11-84-58,02-73-69
|
40
|
#3 |
18-41-86,77-04-32
|
26
|
#4 |
81-88-23,64-58-14
|
0
|
#5 |
31-29-07,41-87-69
|
0
|
#6 |
83-13-40,18-10-94
|
1
|
#7 |
77-80-92,21-72-38
|
2
|
#8 |
57-70-91,55-19-08
|
3
|
#9 |
18-22-75,66-80-91
|
4
|
#10 |
51-93-78,54-49-06
|
5
|
#11 |
58-70-96,17-43-76
|
6
|
#12 |
58-07-12,58-82-93
|
7
|
#13 |
41-29-07,35-95-88
|
8
|
#14 |
88-26-60,42-29-07
|
9
|
#15 |
18-40-85,34-40-91
|
10
|
#16 |
36-60-96,53-96-89
|
11
|
#17 |
51-39-02,44-98-69
|
12
|
#18 |
48-06-20,76-04-42
|
13
|
#19 |
85-29-18,26-50-93
|
14
|
#20 |
27-50-91,43-29-07
|
15
|
#21 |
57-06-20,48-60-91
|
16
|
#22 |
52-98-89,21-76-67
|
17
|
#23 |
67-12-40,45-80-92
|
18
|
#24 |
47-03-10,26-30-82
|
19
|
#25 |
74-28-06,21-86-37
|
20
|
#26 |
65-01-20,73-39-05
|
21
|
#27 |
17-72-86,36-50-94
|
22
|
#28 |
51-29-07,77-15-41
|
23
|
#29 |
33-98-39,82-16-02
|
24
|
#30 |
75-05-10,37-81-96
|
25
|
#31 |
72-58-06,48-80-96
|
26
|
#32 |
81-67-16,21-91-59
|
27
|
#33 |
13-96-57,24-96-79
|
28
|
#34 |
57-04-32,51-18-06
|
29
|
#35 |
88-03-52,28-41-86
|
30
|
#36 |
78-04-61,13-86-49
|
31
|
#37 |
58-12-20,27-50-85
|
32
|
#38 |
61-19-05,71-68-15
|
33
|
#39 |
63-29-16,18-31-83
|
34
|
#40 |
16-50-91,32-98-79
|
35
|
#41 |
82-17-03,38-40-81
|
36
|
#42 |
72-48-04,11-98-39
|
37
|
#43 |
77-05-10,28-50-62
|
38
|
#44 |
38-50-91,11-86-57
|
39
|
#45 |
87-05-10,13-97-69
|
40
|
#46 |
11-86-49,22-98-89
|
44
|
#47 |
11-97-69,12-86-67
|
46
|
#48 |
11-95-69,71-49-05
|
47
|
#49 |
28-31-92,13-98-79
|
48
|