๐ข PCCP 3๋ฒ ์๋ ๋ก๊ทธ ์๊ณ
1. ๋ฌธ์ ๋งํฌ
2. ์ฝ๋
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
"""
PCCP 3๋ฒ ์๋ ๋ก๊ทธ ์๊ณ
๐ ๋ฌธ์
์์นจ, ๋ถ์นจ, ์ด์นจ์ด ์๋ ์๋ ๋ก๊ทธ์๊ณ๊ฐ ์์ต๋๋ค.
์๊ณ์ ์์นจ์ 12์๊ฐ๋ง๋ค, ๋ถ์นจ์ 60๋ถ๋ง๋ค, ์ด์นจ์ 60์ด๋ง๋ค ์๊ณ๋ฅผ ํ ๋ฐํด ๋๋๋ค.
๋ฐ๋ผ์ ์์นจ, ๋ถ์นจ, ์ด์นจ์ด ์์ง์ด๋ ์๋๋ ์ผ์ ํ๋ฉฐ ๊ฐ๊ฐ ๋ค๋ฆ
๋๋ค.
์ด ์๊ณ์๋ ์ด์นจ์ด ์์นจ/๋ถ์นจ๊ณผ ๊ฒน์น ๋๋ง๋ค ์๋์ด ์ธ๋ฆฌ๋ ๊ธฐ๋ฅ์ด ์์ต๋๋ค.
๋น์ ์ ํน์ ์๊ฐ ๋์ ์๋์ด ์ธ๋ฆฐ ํ์๋ฅผ ์๊ณ ์ถ์ต๋๋ค.
์๋์ด ์ธ๋ฆฌ๋ ํ์๋ฅผ ์ผ ์๊ฐ์ ๋ํ๋ด๋ ์ ์ h1, m1, s1, h2, m2, s2๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง๋๋ค.
์ด๋, ์๋์ด ์ธ๋ฆฌ๋ ํ์๋ฅผ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
๐งก ์ ํ ์ฌํญ
0 โค h1, h2 โค 23
0 โค m1, m2 โค 59
0 โค s1, s2 โค 59
h1์ m1๋ถ s1์ด๋ถํฐ h2์ m2๋ถ s2์ด๊น์ง ์๋์ด ์ธ๋ฆฌ๋ ํ์๋ฅผ ์ผ๋ค๋ ์๋ฏธ
h1์ m1๋ถ s1์ด < h2์ m2๋ถ s2์ด
์๊ฐ์ด 23์ 59๋ถ 59์ด๋ฅผ ์ด๊ณผํด์ 0์ 0๋ถ 0์ด๋ก ๋์๊ฐ๋ ๊ฒฝ์ฐ๋ ์ฃผ์ด์ง์ง ์์ต๋๋ค
๐ ์
์ถ๋ ฅ
h1 m1 s1 h2 m2 s2 result
0 5 30 0 7 0 2
12 0 0 12 0 30 1
0 6 1 0 6 6 0
11 59 30 12 0 0 1
11 58 59 11 59 0 1
1 5 5 1 5 6 2
0 0 0 23 59 59 2852
"""
# h1์ m1๋ถ s1์ด๋ถํฐ h2์ m2๋ถ s2์ด๊น์ง ์๋์ด ์ธ๋ฆฌ๋ ํ์
def solution(h1, m1, s1, h2, m2, s2):
answer = 0
# ์ด๋จ์
start = h1 * 3600 + m1 * 60 + s1
end = h2 * 3600 + m2 * 60 + s2
while (start < end) :
# 1์ด๋น!
# ์๊ฐ : 30๋/1์๊ฐ = 30๋/1์๊ฐ * 60๋ถ * 60์ด = 30/3600 = 1/120๋
# ๋ถ : 6๋/1๋ถ = 6๋/60์ด = 1/10๋
# ์ด : 6๋/1์ด = 6๋
hAngle = start / 120 % 360 # 360๋ ์๊ณ์ ๊ฐ๋
mAngle = start / 10 % 360
sAngle = start * 6 % 360
# 0๋๋ก ๋๋์ด๋ฒ๋ฆฌ๊ธฐ ๋๋ฌธ์, 360๋ ํฌํจ์์ผ์ค
# h) ์ด ์ฆ๊ฐ
if ((start + 1) / 120 % 360) == 0 :
nh = 360
else :
nh = (start + 1) / 120 % 360
# m) ์ด ์ฆ๊ฐ
if ((start + 1) / 10 % 360) == 0 :
nm = 360
else :
nm = (start + 1) / 10 % 360
# s) ์ด ์ฆ๊ฐ
if ((start + 1) * 6 % 360) == 0 :
ns = 360
else :
ns = (start + 1) * 6 % 360
# ์ด์นจ๊ณผ ์์นจ/๋ถ์นจ์ด ๊ฒน์น๋ ํ์
if hAngle > sAngle and nh <= ns :
answer += 1
if mAngle > sAngle and nm <= ns :
answer += 1
# ๋๋ค ๊ฒน์น ๊ฒฝ์ฐ
if nh == ns and nm == nh :
answer -= 1
# ๊ทธ๋ค์ ์ฆ๊ฐ
start += 1
start = h1 * 3600 + m1 * 60 + s1
# ์ฒ์์ 00์, 12์
if start == 0 or start == 12 * 3600 :
answer += 1
return answer
์ ํ์ฑ
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
์ ํ์ฑ ํ ์คํธ ํ ์คํธ 1 ใ ํต๊ณผ (26.82ms, 10.2MB) ํ ์คํธ 2 ใ ํต๊ณผ (37.02ms, 10.3MB) ํ ์คํธ 3 ใ ํต๊ณผ (10.72ms, 10.3MB) ํ ์คํธ 4 ใ ํต๊ณผ (30.83ms, 10.2MB) ํ ์คํธ 5 ใ ํต๊ณผ (0.93ms, 10.1MB) ํ ์คํธ 6 ใ ํต๊ณผ (7.90ms, 10.2MB) ํ ์คํธ 7 ใ ํต๊ณผ (38.46ms, 10.3MB) ํ ์คํธ 8 ใ ํต๊ณผ (38.14ms, 10.1MB) ํ ์คํธ 9 ใ ํต๊ณผ (58.74ms, 10.3MB) ํ ์คํธ 10 ใ ํต๊ณผ (76.01ms, 10.2MB) ํ ์คํธ 11 ใ ํต๊ณผ (41.06ms, 10.3MB) ํ ์คํธ 12 ใ ํต๊ณผ (4.16ms, 10.2MB) ํ ์คํธ 13 ใ ํต๊ณผ (78.53ms, 10.2MB) ํ ์คํธ 14 ใ ํต๊ณผ (54.39ms, 10.1MB) ํ ์คํธ 15 ใ ํต๊ณผ (0.02ms, 10.3MB) ํ ์คํธ 16 ใ ํต๊ณผ (26.15ms, 10.3MB) ํ ์คํธ 17 ใ ํต๊ณผ (31.63ms, 10.4MB) ํ ์คํธ 18 ใ ํต๊ณผ (6.18ms, 10MB) ํ ์คํธ 19 ใ ํต๊ณผ (88.13ms, 10.3MB) ํ ์คํธ 20 ใ ํต๊ณผ (88.74ms, 10.2MB) ์ฑ์ ๊ฒฐ๊ณผ ์ ํ์ฑ: 100.0 ํฉ๊ณ: 100.0 / 100.0
3. ํด์ค
- ๋ฑ ๊ฐ๋๊ฐ ๋ง๊ฒ ๋จ์ด์ง๋๊ฒ ์๋๋ผ, ์ ํ์ ์ฐจ์ด๋ฅผ ํตํด ๊ฒน์นจ์ ์นด์ดํธ ํ๋ค
- 00์๋ 12์์ ์์ธ๋ฅผ ์ ๊ฒฝ์จ์ค์ผ ๋ผ์ ์ข ์ด๋ ค์ ์
- ์ฒ์ ์์์ ๊ฒน์นจ์ ์๊ฐ์ ๋ชปํ๊ณ ์์ด์ ๊ณ ์ํ ๋ฌธ์ ์์
This post is licensed under CC BY 4.0 by the author.