[๋ฐฑ์ค-10973] ์ด์ ์์ด / Python
๐ Problem Solving/Baekjoon
10973๋ฒ: ์ด์ ์์ด
์ฒซ์งธ ์ค์ ์ ๋ ฅ์ผ๋ก ์ฃผ์ด์ง ์์ด์ ์ด์ ์ ์ค๋ ์์ด์ ์ถ๋ ฅํ๋ค. ๋ง์ฝ, ์ฌ์ ์์ผ๋ก ๊ฐ์ฅ ์ฒ์์ ์ค๋ ์์ด์ธ ๊ฒฝ์ฐ์๋ -1์ ์ถ๋ ฅํ๋ค.
www.acmicpc.net
import sys
input = sys.stdin.readline
n = int(input())
arr = list(map(int, input().split()))
k = -1
for i in range(len(arr) - 1):
if arr[i] > arr[i + 1]:
k = i
if k == -1:
print(-1)
else:
for i in range(k + 1, len(arr)):
if arr[i] < arr[k]:
m = i
arr[k], arr[m] = arr[m], arr[k]
temp = arr[k + 1 :]
temp.sort(reverse=True)
answer = arr[: k + 1] + temp
for num in answer:
print(num, end=" ")
ํด์ค
a[k] > a[k+1]์ด ์ฑ๋ฆฝํ๋ k์ ์ต๋๋ฅผ ์ฐพ๋๋ค.
k๊ฐ -1์ด๋ฉด ์ด๋ฏธ ์ค๋ฆ์ฐจ์์ด ๋์ด์๋ค๋ ๋ป์ด๋ค.
์ธ๋ฑ์ค k ์ดํ์ ๊ฐ๋ค ์ค a[k] > a[m]์ด ์ฑ๋ฆฝํ๋ m์ ์ต๋๋ฅผ ์ฐพ๋๋ค.
k์ m ์๋ฆฌ์ ๊ฐ์ ์๋ก ๋ฐ๊ฟ์ค๋ค.
์ธ๋ฑ์ค k ์ดํ์ ๊ฐ๋ค์ ๋ด๋ฆผ์ฐจ์์ผ๋ก ์ ๋ ฌํ๋ค.
'๐ Problem Solving > Baekjoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค-5567] ๊ฒฐํผ์ / Python (0) | 2021.06.21 |
---|---|
[๋ฐฑ์ค-3085] ์ฌํ ๊ฒ์ / Python (0) | 2021.06.21 |
[๋ฐฑ์ค-1748] ์ ์ด์ด ์ฐ๊ธฐ 1 / Python (0) | 2021.06.19 |
[๋ฐฑ์ค-1292] ์ฝ๊ฒ ํธ๋ ๋ฌธ์ / Python (0) | 2021.06.19 |
[๋ฐฑ์ค-2504] ๊ดํธ์ ๊ฐ / Python (0) | 2021.06.19 |