๐Ÿงฉ Problem Solving/[๋ฐฑ์ค€]

[๋ฐฑ์ค€] 1205 ๋“ฑ์ˆ˜ ๊ตฌํ•˜๊ธฐ (python ํŒŒ์ด์ฌ)

์ œ๋ด‰์•„ 2024. 3. 19. 17:51
 

1205๋ฒˆ: ๋“ฑ์ˆ˜ ๊ตฌํ•˜๊ธฐ

์ฒซ์งธ ์ค„์— N, ํƒœ์ˆ˜์˜ ์ƒˆ๋กœ์šด ์ ์ˆ˜, ๊ทธ๋ฆฌ๊ณ  P๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. P๋Š” 10๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™๊ณ , 50๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์ •์ˆ˜, N์€ 0๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™๊ณ , P๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์ •์ˆ˜์ด๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋ชจ๋“  ์ ์ˆ˜๋Š” 2,000,000,000๋ณด

www.acmicpc.net


์กฐ๊ฑด์˜ ๋งž์ถฐ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ฌธ์ œ. 

๋ณ€์ˆ˜ N, P์˜ ์กฐ๊ฑด์ด 0 <= N <= P, 10 <= P <= 50 ์ด๋‹ˆ๊นŒ ์‹œ๊ฐ„์€ ์—ฌ์œ ๋กญ๋‹ค.


์•„์ด๋””์–ด

์ผ๋‹จ ์ด ๋ฌธ์ œ์—์„œ ๋ฐฐ์—ด์ด ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ด๋ฏธ ์ •๋ ฌ๋˜์–ด ์žˆ๋‹ค.

๋”ฐ๋ผ์„œ ํƒœ์ˆ˜์˜ ์ ์ˆ˜๊ฐ€ ์–ด๋”จ๋Š”์ง€, ๋ช‡ ๋ฒˆ์งธ ์ธ์ง€๋งŒ ๊ตฌํ•˜๋ฉด ๋œ๋‹ค.

์ฃผ์˜ํ•  ์ ์€ P๋ผ๋Š” ๋žญํ‚น ์ปท์ด ์กด์žฌํ•œ๋‹ค. 

 

์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋‹ค์–‘ํ•˜๊ฒ ์ง€๋งŒ,

๋‚˜๋Š” ๋ฆฌ์ŠคํŠธ๋ฅผ ์ˆœํšŒํ•˜๋ฉฐ ๋“ฑ์ˆ˜(rank)์™€ ๊ฒฝ๊ณ—๊ฐ’(boundary)์„ ๋”ฐ๋กœ ๊ณ„์‚ฐํ•˜๊ณ 

๋งˆ์ง€๋ง‰์— ๊ฒฝ๊ณ—๊ฐ’๊ณผ P๊ฐ’์„ ๋น„๊ตํ•ด์„œ ๋žญํ‚น ๋ฆฌ์ŠคํŠธ์— ์˜ฌ๋ผ๊ฐ”๋Š”์ง€๋ฅผ ๋‚˜๋ˆด๋‹ค. 


์ „์ฒด ์ฝ”๋“œ

scoreList = []
boundary = 1
rank = 1

N, tScore, P = map(int, input().split())

if N != 0:
    scoreList = [int(x) for x in input().split()]

for i in range(N):
    if scoreList[i] > tScore:
        boundary += 1
        rank += 1
    elif scoreList[i] == tScore:
        boundary += 1

if boundary > P:
    print(-1)
else:
    print(rank)

์ฝ”๋“œ ์„ค๋ช…

for i in range(N):
    if scoreList[i] > tScore:
        boundary += 1
        rank += 1
    elif scoreList[i] == tScore:
        boundary += 1

 

๋™์ ์€ ๊ฐ™์€ ๋“ฑ์ˆ˜๋‹ˆ๊นŒ ๋žญํฌ๋Š” ๊ทธ๋Œ€๋กœ ๋‘”๋‹ค.