๐ข ํผ์ ๊ตฝ๊ธฐ
1. ๋ฌธ์ ๋งํฌ
2. ์ฝ๋
Python3
31120KB
680ms
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
"""
[1756] ํผ์ ๊ตฝ๊ธฐ
๐ ๋ฌธ์
์๋ํผ์ ์์ฃผ ์ง์ ์์ N๊ฐ์ ํผ์ ๋ฐ์ฃฝ์ ์ค๋ธ์ ๋ฃ๊ณ ๊ตฌ์ฐ๋ ค๊ณ ํ๋ค.
๊ทธ๋ฐ๋ฐ, ์๋ํผ์์์ ๋ง๋๋ ํผ์ ๋ฐ์ฃฝ์ ์ง๋ฆ์ด ์ ๊ฐ๊ฐ์ด๋ค. ๊ทธ๋ฐ๊ฐํ๋ฉด, ์๋ํผ์์์ ์ฌ์ฉํ๋ ์ค๋ธ์ ๋ชจ์๋ ๋ชน์ ์ค๋ฌํ๋ค.
์ด ์ค๋ธ์ ๊น์ ๊ด์ฒ๋ผ ์๊ฒผ๋๋ฐ, ๊ด์ ์ง๋ฆ์ด ๊น์ด์ ๋ฐ๋ผ ๋ค์ญ๋ ์ญํ๊ฒ ๋ณํ๋ค. ์๋๋ ์ค๋ธ์ ๋จ๋ฉด ์์์ด๋ค.
ํผ์ ๋ฐ์ฃฝ์ ์์ฑ๋๋ ์์๋๋ก ์ค๋ธ์ ๋ค์ด๊ฐ๋ค.
์ด๋ ๊ฒ N๊ฐ์ ํผ์๊ฐ ์ค๋ธ์ ๋ชจ๋ ๋ค์ด๊ฐ๊ณ ๋๋ฉด, ๋งจ ์์ ํผ์๊ฐ ์ผ๋ง๋ ๊น์ด ๋ค์ด๊ฐ ์๋์ง๊ฐ ๊ถ๊ธํ๋ค.
์ด๋ฅผ ์์๋ด๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
๐ ์
๋ ฅ
์ฒซ์งธ ์ค์ ์ค๋ธ์ ๊น์ด D์ ํผ์ ๋ฐ์ฃฝ์ ๊ฐ์ N์ด ๊ณต๋ฐฑ์ ์ฌ์ด์ ๋๊ณ ์ฃผ์ด์ง๋ค. (1 โค D, N โค 300,000)
๋์งธ ์ค์๋ ์ค๋ธ์ ์ต์๋จ๋ถํฐ ์์ํ์ฌ ๊น์ด์ ๋ฐ๋ฅธ ์ค๋ธ์ ์ง๋ฆ์ด ์ฐจ๋ก๋๋ก ์ฃผ์ด์ง๋ค.
์
์งธ ์ค์๋ ํผ์ ๋ฐ์ฃฝ์ด ์์ฑ๋๋ ์์๋๋ก, ๊ทธ ๊ฐ๊ฐ์ ์ง๋ฆ์ด ์ฃผ์ด์ง๋ค.
์ค๋ธ์ ์ง๋ฆ์ด๋ ํผ์ ๋ฐ์ฃฝ์ ์ง๋ฆ์ 10์ต ์ดํ์ ์์ฐ์์ด๋ค.
๐ ์ถ๋ ฅ
์ฒซ์งธ ์ค์, ๋ง์ง๋ง ํผ์ ๋ฐ์ฃฝ์ ์์น๋ฅผ ์ถ๋ ฅํ๋ค.
์ค๋ธ์ ์ต์๋จ์ด 1์ด๊ณ , ์ตํ๋จ ๊ฐ์ฅ ๊น์ ๊ณณ์ด D์ด ๋๋ค. ๋ง์ฝ ํผ์๊ฐ ๋ชจ๋ ์ค๋ธ์ ๋ค์ด๊ฐ์ง ์๋๋ค๋ฉด, 0์ ์ถ๋ ฅํ๋ค.
"""
# ์ค๋ธ์ ๊น์ด D์ ํผ์ ๋ฐ์ฃฝ์ ๊ฐ์ N
d, n = map(int, input().split())
# ์ค๋ธ์ ์ต์๋จ๋ถํฐ ์์ํ์ฌ ๊น์ด์ ๋ฐ๋ฅธ ์ค๋ธ์ ์ง๋ฆ
oven = list(map(int, input().split()))
# ํผ์ ๋ฐ์ฃฝ์ด ์์ฑ๋๋ ์์๋๋ก, ๊ทธ ๊ฐ๊ฐ์ ์ง๋ฆ
pizza = list(map(int, input().split()))
# ์ฌ์ ๋ ฌ
for i in range(d - 1):
if oven[i] < oven[i+1]:
oven[i+1] = oven[i]
flag = 0
for i in range(d - 1, -1, -1):
if pizza[flag] > oven[i]:
continue
flag += 1
if flag == n:
print(i+1)
break
if flag != n :
print(0)
3. ํด์ค
1
2
์ค๋ธ ํฌ๊ธฐ๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ํผ์๋ค์ flag ๋ก ํฉ์ฐํ๋ค
ํผ์์ ์(n) ๊ณผ ๊ฐ๋ค๋ฉด ์ค๋ธ์ ๋ค ๋ฃ์ ๊ฒ์ด๊ณ , ๋ค๋ฅด๋ค๋ฉด -1 ์ด๋ค
This post is licensed under CC BY 4.0 by the author.