https://www.acmicpc.net/problem/1489
๋ค์ํ ํ์ด๋ฅผ ์๋ํ์ผ๋, ํด๋ฒ์ ์ฐพ์ง ๋ชปํด์ ๊ฒฐ๊ตญ ๋ธ๋ก๊ทธ ๊ธ์ ์ฐธ๊ณ ํ๋ค.
- ๋์ ๊ณํ๋ฒ ํ์ด : https://sdev.tistory.com/660
- ์๊ณ ๋ฆฌ์ฆ ํ์ด : https://velog.io/@y7y1h13/%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98%EB%B0%B1%EC%A4%801489-%EB%8C%80%EA%B2%B0python
0% ๋ฐ๋ก
4
100 1 1 1
100 1 1 1
์ฐธ๊ณ ๋ก, ๋ด๊ฐ ์๊ฐํ๋ ์๊ณ ๋ฆฌ์ฆ์ ๋ค์๊ณผ ๊ฐ์๋ค.
- A, B ๋ชจ๋ ๋ด๋ฆผ์ฐจ์
- A ๋ฅผ ๋ด๋ฆผ์ฐจ์์ผ๋ก ๋๋ฉด์
> ์ด๊ธฐ๊ฑฐ๋ ๋ฌด์น๋ถ๊ฐ ๊ฐ๋ฅํ ๊ฒฝ์ฐ๋ฅผ ์ฐพ์
> ์ด๊ธฐ๋ ๊ฒฝ์ฐ + 2
> ๋ฌด์น๋ถ์ธ ๊ฒฝ์ฐ, ์ ํ ๊ฐ์ ๋น๊ตํ๋ฉด์ ์ด๊ธฐ๋ ๊ฒฝ์ฐ์ ์ฐ์ ์์ ๋์ด ๊ณ์ฐ
์ด๋ ๊ฒ ํด์ ํ ๊ฒฝ์ฐ A : 1 4 7 10 , B : 3 7 8 15 ์์ 10-8, 7-7, 4-3 ํด์ 5์ ์ด ์๋๋ผ 10-8, 7-3์ผ๋ก 4์ ์ด ๋์ค๊ฒ ๋๋ค.
๊ทธ๋ ๋ค๊ณ ์ฐ์ ์์๋ฅผ ์ ๋์๋ A : 1 5 0, B : 1 5 10 ์์ ๊ณ์ ๋ฌด์น๋ถ๋ก ๋น ์ง๊ณ ..
์ด 2์ผ์ด์ค๋ฅผ ๋ชจ๋ ๋ง์กฑํ๋ ๋ฐฉ๋ฒ์ ๊ณ ๋ฏผํด๋ณด๋ค๊ฐ, ์๊ณ ๋ฆฌ์ฆ์ด ๋์ ํ ์์ ํ์ ๋ง๊ณ ๋ ์๊ฐ์ด ๋์ง ์์๋ค..
N = int(input())
A = list(map(int, input().split()))
B = list(map(int, input().split()))
A.sort(reverse=True)
B.sort(reverse=True)
bStartIndex = 0
result = 0
for a in A:
if bStartIndex == len(B):
break
possibleIndex = 0
for bIndex in range(bStartIndex, len(B)):
if (a >= B[bIndex]):
possibleIndex = bIndex
break
if a > B[possibleIndex]:
result += 2
bStartIndex = possibleIndex + 1
elif a == B[possibleIndex]:
# print('> ', possibleIndex, ' > ', bStartIndex)
if (possibleIndex > 0 and possibleIndex >= bStartIndex and a > B[possibleIndex - 1]):
result += 2
bStartIndex = possibleIndex
else:
result += 1
bStartIndex = possibleIndex + 1
# print(a, ' vs ', B[possibleIndex], ' = ', result)
print(result)
'๐ค ์๊ณ ๋ฆฌ์ฆ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
baekjoon. 11729 ํ๋ ธ์ด ํ ์ด๋ ์์ [Silver I][python] (0) | 2023.07.12 |
---|---|
baekjoon. 15486 ํด์ฌ 2 [Gold V][python] (0) | 2023.07.06 |
โก๏ธ baekjoon. 14501 ํด์ฌ [Silver III][python] (0) | 2023.06.28 |
baekjoon. 1071 ์ํธ [Platinum V][python] (0) | 2023.06.22 |
baekjoon. 1083 ์ํธ [Gold V][python] (0) | 2023.06.15 |