본문 바로가기
Develop/알고리즘

[백준/Python] Silver V #24155 得点 (Score)

by favorcat 2023. 5. 28.
반응형
 

24155번: 得点 (Score)

先日,JOI 大学情報学科で入学試験が行われた.試験は 100 点満点であり,n 人の生徒が受験 した.JOI 大学では,合格最低点を決定するために,試験結果を元に各生徒に順位をつけるこ とに

www.acmicpc.net

문제

先日,JOI 大学情報学科で入学試験が行われた.試験は 100 点満点であり,n 人の生徒が受験 した.JOI 大学では,合格最低点を決定するために,試験結果を元に各生徒に順位をつけるこ とにした.

n 人の生徒の得点が与えられたとき,各生徒の順位を求めるプログラムを作成せよ.ただし, 同じ得点の生徒がいる可能性があることに注意せよ.

입력

入力の 1 行目には,生徒の人数 n (1 ≤ n ≤ 100000) が書かれて いる.続く n 行は生徒の得点を表す.i + 1 (1 ≤ i ≤ n) 行目には受験番号 i の生徒の得点 si (0 ≤ si ≤ 100) が書かれている.

출력

出力は,標準出力に行うこと.出力は n 行からなる.i 行目 (1 5 i 5 n) に受験番号 i の生徒の順位を出力せよ.

풀이

n = int(input())
score = []
for i in range(n):
    m = int(input())
    score.append([i, m, 0])

tmp = 0
idx = 0
cnt = 0
sscore = sorted(score, key=lambda x: x[1], reverse=True)
for j in range(n):
    flag = 1
    if tmp == sscore[j][1]:
        sscore[j][2] = idx
        flag = 0
    cnt += 1
    if flag:
        idx = cnt
        sscore[j][2] = idx
    tmp = sscore[j][1]

ans = sorted(sscore, key=lambda x: x[0])
for a in ans:
    print(a[2])
반응형

Comment