๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

Algorithm/BOJ

[BOJ] ํ•œ์กฐ์„œ์—ด์ •๋ฆฌํ•˜๊ณ ์˜ดใ…‹ใ…‹ (#14659)

 

 

๋ฌธ์ œ 

 

“๋ฐ˜๊ฐ‘๋‹ค. ๋‚ด ์ด๋ฆ„์€ ๋ฐ˜๊ณ ํ#31555! ์กฐ์„  ์ตœ๊ณ ์˜ ํ™œ์žก์ด์ง€. ์˜ค๋Š˜๋„ ๋‚œ ๊ธˆ๊ฐ•์‚ฐ ์œ„์—์„œ ์ ๋“ค์„ ๋…ธ๋ฆฌ๊ณ  ์žˆ์ง€. ๋‚ด ์•ž์— ์žˆ๋Š” ์ ๋“ค์ด๋ผ๋ฉด ๋ˆ„๊ตฌ๋„ ๋†“์น˜์ง€ ์•Š์•„! ์ข‹์•„, ์ด์ œ ๊ณง ์›”์‹์ด ์‹œ์ž‘๋˜๋Š”๊ตฐ. ์›”์‹์ด ์‹œ์ž‘๋˜๋ฉด ์šฉ์ด ์ ๋“ค์„ ์ง‘์–ด์‚ผํ‚ฌ ๊ฒƒ์ด๋‹ค. ์ž˜ ๋ด๋‘์–ด๋ผ! ๋งˆ์žฅ๋™ ํ™œ์žก์ด ๋ฐ˜๊ณ ํ#31555๋‹˜์˜ ์‹ค๋ ฅ์„-!”

๋ฐ˜๊ณ ํ#31555๋Š” ์ž๊ธฐ ๋’ค์ชฝ ๋ด‰์šฐ๋ฆฌ์— ๋ฉ๊ธฐ#3958์ด ์žˆ์Œ์„ ์ „ํ˜€ ๋ชจ๋ฅด๊ณ  ์žˆ์—ˆ๋‹ค. ๋ฉ๊ธฐ#3958๋„ ๋ฐ˜๊ณ ํ#31555์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์›”์‹์ด ์‹œ์ž‘๋˜๋ฉด ์šฉ์„ ๋ถˆ๋Ÿฌ๋‚ด์–ด ๋ˆˆ์•ž์— ์žˆ๋Š” ๋‹ค๋ฅธ ํ™œ์žก์ด๋“ค์„ ๋ชจ๋‘ ์ฒ˜์น˜ํ•  ์ƒ๊ฐ์ด๋‹ค. ์‚ฌ์‹ค, ๋ฐ˜๊ณ ํ#31555์™€ ๋ฉ๊ธฐ#3958 ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๊ธˆ๊ฐ• ์‚ฐ๋งฅ์˜ N๊ฐœ ๋ด‰์šฐ๋ฆฌ์— ์žˆ๋Š” ๋ชจ๋“  ํ™œ์žก์ด๋“ค์ด ๊ฐ™์€ ์ƒ๊ฐ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.

๋ฐ˜๊ณ ํ#31555๊ฐ€ ์žˆ๋Š” ๊ธˆ๊ฐ• ์‚ฐ๋งฅ์—๋Š” ์ด N๊ฐœ์˜ ๋ด‰์šฐ๋ฆฌ๊ฐ€ ์žˆ๊ณ , ๋ชจ๋“  ๋ด‰์šฐ๋ฆฌ๋งˆ๋‹ค ํ•œ ๋ช…์˜ ํ™œ์žก์ด๊ฐ€ ์„œ์„œ ์›”์‹์ด ์‹œ์ž‘๋˜๊ธฐ๋งŒ์„ ๊ธฐ๋‹ค๋ฆฌ๊ณ  ์žˆ๋‹ค. ๋‹ค๋งŒ, ์• ์„ํ•˜๊ฒŒ๋„, ์ฒœ๊ณ„์— ๋งฅ๋„๋‚ ๋“œ๊ฐ€ ์ƒ๊ฒจ ์šฉ๋“ค์ด ์‚ด์ด ์ฐ ํƒ“์— ์šฉ๋“ค์€ ์ž์‹ ๋ณด๋‹ค ๋‚ฎ์€ ๋ด‰์šฐ๋ฆฌ์— ์„œ์žˆ๋Š” ์ ๋“ค๋งŒ ์ฒ˜์น˜ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ๋‹ค. ๋˜ํ•œ ์šฉ๋“ค์€ ์ฒ˜์Œ ์ถœ๋ฐœํ•œ ๋ด‰์šฐ๋ฆฌ๋ณด๋‹ค ๋†’์€ ๋ด‰์šฐ๋ฆฌ๋ฅผ ๋งŒ๋‚˜๋ฉด ๊ทธ๋Œ€๋กœ ๊ณต๊ฒฉ์„ ํฌ๊ธฐํ•˜๊ณ  ๊ธˆ๊ฐ•์‚ฐ์ž๋ฝ์— ๋“œ๋Ÿฌ๋ˆ„์›Œ ๋‚ฎ์ž ์„ ์ฒญํ•œ๋‹ค๊ณ  ํ•œ๋‹ค. ๋ด‰์šฐ๋ฆฌ์˜ ๋†’์ด๋Š” ๋ชจ๋‘ ๋‹ค๋ฅด๊ณ  ๋ชจ๋“  ์šฉ๋“ค์€ ์˜ค๋ฅธ์ชฝ์œผ๋กœ๋งŒ ๋‚˜์•„๊ฐ€๋ฉฐ, ์ค‘๊ฐ„์— ๋ฐฉํ–ฅ์„ ํ‹€๊ฑฐ๋‚˜, ๋ด‰์šฐ๋ฆฌ๊ฐ€ ๋ฌด๋„ˆ์ง€๊ฑฐ๋‚˜ ์†Ÿ์•„๋‚˜๋Š” ๊ฒฝ์šฐ๋Š” ์—†๋‹ค.

“๋‹ฌ์— ๋งˆ๊ตฌ๋‹ˆ๊ฐ€ ๋ผ์—ˆ๊ตฌ๋‚˜.”

๋“œ๋””์–ด ์›”์‹์ด ์‹œ์ž‘๋๋‹ค! ๊ณผ์—ฐ ์ด๋“ค ํ™œ์žก์ด ์ค‘ ์ตœ๊ณ ์˜ ํ™œ์žก์ด๋Š” ๋ˆ„๊ตฌ์ผ๊นŒ? ์ตœ๊ณ ์˜ ํ™œ์žก์ด๊ฐ€ ์ตœ๋Œ€ ๋ช‡ ๋ช…์˜ ์ ์„ ์ฒ˜์น˜ํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ์•Œ์•„๋ณด์ž.

 

 

์ž…๋ ฅ

 

์ฒซ์งธ ์ค„์— ๋ด‰์šฐ๋ฆฌ์˜ ์ˆ˜ ๊ฒธ ํ™œ์žก์ด์˜ ์ˆ˜ N์ด ์ฃผ์–ด์ง„๋‹ค. (1 ≤ N ≤ 30,000) ๋‘˜์งธ ์ค„์— N๊ฐœ ๋ด‰์šฐ๋ฆฌ์˜ ๋†’์ด๊ฐ€ ์™ผ์ชฝ ๋ด‰์šฐ๋ฆฌ๋ถ€ํ„ฐ ์ˆœ์„œ๋Œ€๋กœ ์ฃผ์–ด์ง„๋‹ค. (1 ≤ ๋†’์ด ≤ 100,000) ๊ฐ๊ฐ ๋ด‰์šฐ๋ฆฌ์˜ ๋†’์ด๋Š” ์ค‘๋ณต ์—†์ด ์œ ์ผํ•˜๋‹ค.

 

 

์ถœ๋ ฅ 

 

์ตœ๊ณ ์˜ ํ™œ์žก์ด๊ฐ€ ์ฒ˜์น˜ํ•  ์ˆ˜ ์žˆ๋Š” ์ ์˜ ์ตœ๋Œ€ ์ˆซ์ž๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

 

 

 

ํ•ด์„ค ์ฝ”๋“œ
N = int(input())
dragon = list(map(int,input().split()))
count=0
array=[]

for i in range(N-1): 
  count = 0
  for k in range(i+1,N):
    if dragon[i] < dragon[k]:
      break
    else:
      count+=1
  array.append(count)
print(max(array))
๋ถ„์„ > ์ค‘์ฒฉ ๋ฐ˜๋ณต๋ฌธ์„ ํ†ตํ•ด ๋“œ๋ž˜๊ณค ๋ฆฌ์ŠคํŠธ์˜ dragon[i] ์™€ dragon[k] ๋ฅผ ๋น„๊ตํ•˜์—ฌ ํ›„์ž์˜ ๊ฐ’์ด ๋” ํด ๊ฒฝ์šฐ์—๋Š” ๋ฐ˜๋ณต๋ฌธ์„ ๋ฉˆ์ถ”๊ณ , ๊ทธ๋Ÿฌ์ง€ ์•Š๋Š” ๊ฒฝ์šฐ์—๋Š” count๋ฅผ 1์”ฉ ์ฆ๊ฐ€ ์‹œํ‚จ ํ›„ ๋‹ค์‹œ ๋ฐ˜๋ณต๋ฌธ์„ ์‹œ์ž‘ํ•  ๋•Œ ๊ฐ’์„ 0์œผ๋กœ ์ดˆ๊ธฐํ™” ํ•˜์—ฌ ์ด๋ฅผ ์ƒˆ๋กœ์šด ๋ฐฐ์—ด์— ์ถ”๊ฐ€ํ•œ ํ›„ ๋ฐฐ์—ด ๋‚ด ์ตœ๋Œ€๊ฐ’์„ ๊ตฌํ•ด์„œ ํ•ด๊ฒฐํ•˜์˜€๋‹ค.