๐ข ๊ฐ์ธ์ ๋ณด ์์ง ์ ํจ๊ธฐ๊ฐ
1. ๋ฌธ์ ๋งํฌ
2023 KAKAO BLIND RECRUITMENT: ๊ฐ์ธ์ ๋ณด ์์ง ์ ํจ๊ธฐ๊ฐ
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
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
"""
๊ฐ์ธ์ ๋ณด ์์ง ์ ํจ๊ธฐ๊ฐ
๐ ๋ฌธ์
๊ณ ๊ฐ์ ์ฝ๊ด ๋์๋ฅผ ์ป์ด์ ์์ง๋ 1~n๋ฒ์ผ๋ก ๋ถ๋ฅ๋๋ ๊ฐ์ธ์ ๋ณด n๊ฐ๊ฐ ์์ต๋๋ค.
์ฝ๊ด ์ข
๋ฅ๋ ์ฌ๋ฌ ๊ฐ์ง ์์ผ๋ฉฐ ๊ฐ ์ฝ๊ด๋ง๋ค ๊ฐ์ธ์ ๋ณด ๋ณด๊ด ์ ํจ๊ธฐ๊ฐ์ด ์ ํด์ ธ ์์ต๋๋ค.
๋น์ ์ ๊ฐ ๊ฐ์ธ์ ๋ณด๊ฐ ์ด๋ค ์ฝ๊ด์ผ๋ก ์์ง๋๋์ง ์๊ณ ์์ต๋๋ค.
์์ง๋ ๊ฐ์ธ์ ๋ณด๋ ์ ํจ๊ธฐ๊ฐ ์ ๊น์ง๋ง ๋ณด๊ด ๊ฐ๋ฅํ๋ฉฐ, ์ ํจ๊ธฐ๊ฐ์ด ์ง๋ฌ๋ค๋ฉด ๋ฐ๋์ ํ๊ธฐํด์ผ ํฉ๋๋ค.
์๋ฅผ ๋ค์ด, A๋ผ๋ ์ฝ๊ด์ ์ ํจ๊ธฐ๊ฐ์ด 12 ๋ฌ์ด๊ณ , 2021๋
1์ 5์ผ์ ์์ง๋ ๊ฐ์ธ์ ๋ณด๊ฐ A์ฝ๊ด์ผ๋ก ์์ง๋์๋ค๋ฉด
ํด๋น ๊ฐ์ธ์ ๋ณด๋ 2022๋
1์ 4์ผ๊น์ง ๋ณด๊ด ๊ฐ๋ฅํ๋ฉฐ 2022๋
1์ 5์ผ๋ถํฐ ํ๊ธฐํด์ผ ํ ๊ฐ์ธ์ ๋ณด์
๋๋ค.
๋น์ ์ ์ค๋ ๋ ์ง๋ก ํ๊ธฐํด์ผ ํ ๊ฐ์ธ์ ๋ณด ๋ฒํธ๋ค์ ๊ตฌํ๋ ค ํฉ๋๋ค.
๋ชจ๋ ๋ฌ์ 28์ผ๊น์ง ์๋ค๊ณ ๊ฐ์ ํฉ๋๋ค.
์ค๋ ๋ ์ง๋ฅผ ์๋ฏธํ๋ ๋ฌธ์์ด today, ์ฝ๊ด์ ์ ํจ๊ธฐ๊ฐ์ ๋ด์ 1์ฐจ์ ๋ฌธ์์ด ๋ฐฐ์ด terms์
์์ง๋ ๊ฐ์ธ์ ๋ณด์ ์ ๋ณด๋ฅผ ๋ด์ 1์ฐจ์ ๋ฌธ์์ด ๋ฐฐ์ด privacies๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง๋๋ค.
์ด๋ ํ๊ธฐํด์ผ ํ ๊ฐ์ธ์ ๋ณด์ ๋ฒํธ๋ฅผ ์ค๋ฆ์ฐจ์์ผ๋ก 1์ฐจ์ ์ ์ ๋ฐฐ์ด์ ๋ด์ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด ์ฃผ์ธ์.
๐งก ์ ํ ์ฌํญ
today๋ "YYYY.MM.DD" ํํ๋ก ์ค๋ ๋ ์ง๋ฅผ ๋ํ๋
๋๋ค.
1 โค terms์ ๊ธธ์ด โค 20
terms์ ์์๋ "์ฝ๊ด ์ข
๋ฅ ์ ํจ๊ธฐ๊ฐ" ํํ์ ์ฝ๊ด ์ข
๋ฅ์ ์ ํจ๊ธฐ๊ฐ์ ๊ณต๋ฐฑ ํ๋๋ก ๊ตฌ๋ถํ ๋ฌธ์์ด์
๋๋ค.
์ฝ๊ด ์ข
๋ฅ๋ A~Z์ค ์ํ๋ฒณ ๋๋ฌธ์ ํ๋์ด๋ฉฐ, terms ๋ฐฐ์ด์์ ์ฝ๊ด ์ข
๋ฅ๋ ์ค๋ณต๋์ง ์์ต๋๋ค.
์ ํจ๊ธฐ๊ฐ์ ๊ฐ์ธ์ ๋ณด๋ฅผ ๋ณด๊ดํ ์ ์๋ ๋ฌ ์๋ฅผ ๋ํ๋ด๋ ์ ์์ด๋ฉฐ, 1 ์ด์ 100 ์ดํ์
๋๋ค.
1 โค privacies์ ๊ธธ์ด โค 100
privacies[i]๋ i+1๋ฒ ๊ฐ์ธ์ ๋ณด์ ์์ง ์ผ์์ ์ฝ๊ด ์ข
๋ฅ๋ฅผ ๋ํ๋
๋๋ค.
privacies์ ์์๋ "๋ ์ง ์ฝ๊ด ์ข
๋ฅ" ํํ์ ๋ ์ง์ ์ฝ๊ด ์ข
๋ฅ๋ฅผ ๊ณต๋ฐฑ ํ๋๋ก ๊ตฌ๋ถํ ๋ฌธ์์ด์
๋๋ค.
๋ ์ง๋ "YYYY.MM.DD" ํํ์ ๊ฐ์ธ์ ๋ณด๊ฐ ์์ง๋ ๋ ์ง๋ฅผ ๋ํ๋ด๋ฉฐ, today ์ด์ ์ ๋ ์ง๋ง ์ฃผ์ด์ง๋๋ค.
privacies์ ์ฝ๊ด ์ข
๋ฅ๋ ํญ์ terms์ ๋ํ๋ ์ฝ๊ด ์ข
๋ฅ๋ง ์ฃผ์ด์ง๋๋ค.
today์ privacies์ ๋ฑ์ฅํ๋ ๋ ์ง์ YYYY๋ ์ฐ๋, MM์ ์, DD๋ ์ผ์ ๋ํ๋ด๋ฉฐ ์ (.) ํ๋๋ก ๊ตฌ๋ถ๋์ด ์์ต๋๋ค.
2000 โค YYYY โค 2022
1 โค MM โค 12
MM์ด ํ ์๋ฆฟ์์ธ ๊ฒฝ์ฐ ์์ 0์ด ๋ถ์ต๋๋ค.
1 โค DD โค 28
DD๊ฐ ํ ์๋ฆฟ์์ธ ๊ฒฝ์ฐ ์์ 0์ด ๋ถ์ต๋๋ค.
ํ๊ธฐํด์ผ ํ ๊ฐ์ธ์ ๋ณด๊ฐ ํ๋ ์ด์ ์กด์ฌํ๋ ์
๋ ฅ๋ง ์ฃผ์ด์ง๋๋ค.
๐ ์
์ถ๋ ฅ
today terms privacies result
"2022.05.19" ["A 6", "B 12", "C 3"] ["2021.05.02 A", "2021.07.01 B", "2022.02.19 C", "2022.02.20 C"] [1, 3]
"2020.01.01" ["Z 3", "D 5"] ["2019.01.01 D", "2019.11.15 Z", "2019.08.02 D", "2019.07.01 D", "2018.12.28 Z"] [1, 4, 5]
"""
def solution(today, terms, privacies):
answer = []
y, m, d = today.split(".")
y, m = int(y), int(m)
# ์ค๋ ๋ ์ง๋ฅผ ์๋ฏธํ๋ ๋ฌธ์์ด today, ์ฝ๊ด์ ์ ํจ๊ธฐ๊ฐ์ ๋ด์ 1์ฐจ์ ๋ฌธ์์ด ๋ฐฐ์ด terms
# ์์ง๋ ๊ฐ์ธ์ ๋ณด์ ์ ๋ณด๋ฅผ ๋ด์ 1์ฐจ์ ๋ฌธ์์ด ๋ฐฐ์ด privacies
# input ๊ฐ๋ค์ ์ ์ฒ๋ฆฌ ํด์ค๋ค ์์๊ฒ ๋ค์ split ํด์ ์ ๋ฐฐ์ด ์์ผ๋ก ๋ฃ์ด์ค๋ค
terms_temp = []
for i in range(len(terms)):
a, b = terms[i].split(" ")
# [['A', 6], ['B', 12], ['C', 3]]
terms_temp.append([a, int(b)])
privacies_temp = []
for i in range(len(privacies)):
a, b = privacies[i].split(" ")
y, m, d = a.split(".")
# [[2021, 5, 2, 'A'], [2021, 7, 1, 'B'], [2022, 2, 19, 'C'], [2022, 2, 20, 'C']]
privacies_temp.append([int(y), int(m), d, b])
new_privacies_temp = [[] for _ in range(len(privacies))]
# ์ ํจ ๊ธฐ๊ฐ ์
๋ ฅํ๊ธฐ
for i in range(len(terms_temp)):
for j in range(len(privacies_temp)):
temp = []
# ์ฝ๊ด ์ข
๋ฅ ๋น๊ตํ๊ธฐ
if terms_temp[i][0] == privacies_temp[j][3]:
# ์ฝ๊ด ์ ํจ ๊ธฐ๊ด (๋ฌ) ๋ํ๊ธฐ
yy = privacies_temp[j][1] + terms_temp[i][1]
# 12๊ฐ์ (1๋
) ์ ์ง๋๋ค๋ฉด ๋
๋ +1
if yy > 12:
if (yy % 12 == 0):
yyy = yy // 12 - 1
privacies_temp[j][0] += yyy
yy = 12
else:
yyy = yy // 12
privacies_temp[j][0] += yyy
yy -= 12 * yyy
temp = [privacies_temp[j][0], str(
yy).zfill(2), privacies_temp[j][2]]
# ['2021.11.02', '2022.7.01', '2022.5.19', '2022.5.20']
print(temp)
new_privacies_temp[j] = ".".join(map(str, temp))
# ์ค๋ ๋ ์ง์ ๋น๊ตํ๊ธฐ
for i in range(len(new_privacies_temp)):
if today >= new_privacies_temp[i]:
answer.append(i+1)
return answer
์ ํ์ฑ
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
ํ ์คํธ 1 ใ ํต๊ณผ (0.04ms, 10.3MB) ํ ์คํธ 2 ใ ํต๊ณผ (0.06ms, 10.4MB) ํ ์คํธ 3 ใ ํต๊ณผ (0.05ms, 10.4MB) ํ ์คํธ 4 ใ ํต๊ณผ (0.05ms, 10.4MB) ํ ์คํธ 5 ใ ํต๊ณผ (0.06ms, 10.4MB) ํ ์คํธ 6 ใ ํต๊ณผ (0.09ms, 10.4MB) ํ ์คํธ 7 ใ ํต๊ณผ (0.09ms, 10.4MB) ํ ์คํธ 8 ใ ํต๊ณผ (0.12ms, 10.5MB) ํ ์คํธ 9 ใ ํต๊ณผ (0.22ms, 10.6MB) ํ ์คํธ 10 ใํต๊ณผ (0.22ms, 10.5MB) ํ ์คํธ 11 ใํต๊ณผ (0.23ms, 10.3MB) ํ ์คํธ 12 ใํต๊ณผ (0.44ms, 10.4MB) ํ ์คํธ 13 ใํต๊ณผ (0.43ms, 10.4MB) ํ ์คํธ 14 ใํต๊ณผ (0.29ms, 10.3MB) ํ ์คํธ 15 ใํต๊ณผ (0.28ms, 10.5MB) ํ ์คํธ 16 ใํต๊ณผ (0.58ms, 10.5MB) ํ ์คํธ 17 ใํต๊ณผ (0.97ms, 10.5MB) ํ ์คํธ 18 ใํต๊ณผ (1.04ms, 10.5MB) ํ ์คํธ 19 ใํต๊ณผ (0.53ms, 10.3MB) ํ ์คํธ 20 ใํต๊ณผ (0.54ms, 10.4MB)
3. ํด์ค
์ ๋ ฅ๊ฐ ใ โ2020.12.17โ, [โA 12โ], [โ2010.01.01 Aโ, โ2019.12.17 Aโ]
๊ธฐ๋๊ฐ ใ [1, 2]
๋ฐ๋ก๊ฐ ์์๋ค.. 12์ ๋ฐฐ์ ์ผ ๋๋ง 12๋ก ๋ฌ์ ์ง์ ํด์ฃผ๊ณ ๋ ๋๋ ๋ชซ์์ 1์ ๋นผ์ค์ ๋ํด์คฌ๋ค
์ผ์ ํ์ ์์ผ๋๊น ๋ , ๋ฌ๋ง int ๋ก ํฌ๊ธฐ ๋น๊ต ํด์ฃผ๊ณ ๋ง์ง๋ง์ ๋ฌธ์์ด๋ก ํฉ์ณ์ค ๋ค์ ํฌ๊ธฐ๋ฅผ ๋น๊ตํ๋ค
This post is licensed under CC BY 4.0 by the author.