반응형

코드포스(Codeforces) 158A Next Round 풀이 코드

C | C++ | Java | Python

Difficulty : *800 (Implementation)


문제 해설

대회에 참가한 선수들이 얻은 점수가 내림차순으로 정렬된 배열로 주어집니다. k번째 점수보다 크거나 같은 점수를 얻은 선수만 다음 라운드로 진출할 수 있습니다. 다음 라운드에 올라갈 선수는 모두 몇 명인가요?

풀이

입력받은 배열에서 k번째 값보다 크거나 작은 값의 수를 for문으로 세고 출력합니다.

코드

#include <stdio.h>

int main () {
    int n, k, i, set, rlt = 0, arr[50] = {0, };
    scanf("%d %d", &n, &k);
    for(i = 0; i < n; i++){
        scanf("%d", &arr[i]);
    }

    for(i = 0; i < n; i++){
        if(arr[i] >= arr[k-1] && arr[i] > 0){
            rlt ++;
        }
    }
    printf("%d", rlt);
    return 0;
}
#include<iostream>

int main(){
    int n, k, rlt = 0;
    std::cin>>n>>k;
    int arr[n];
    for(int i = 0; i < n; i++){
        std::cin>>arr[i];
    }

    for(int j = 0; j < n; j++){
        if(arr[j] >= arr[k-1] && arr[j] > 0){
            rlt ++;
        }
    }
    std::cout<<rlt;
}
import java.util.Scanner;
 
public class Main {
    public static void main (String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int k = sc.nextInt();
        int[] arr = new int[n];
        for(int i = 0; i < n; i++){
            arr[i] = sc.nextInt();
        }

        int rlt = 0;
        for(int j = 0; j < n; j++){
            if(arr[j] >= arr[k-1] && arr[j] > 0){
                rlt ++;
            }
        }
        System.out.println(rlt);
        return;
    }
}
n, k = map(int, input().split(" "))
rlt = 0
arr = list(map(int, input().split(" ")))
set = arr[k-1];

for i in range(n):
    if arr[i] >= arr[k-1] and arr[i] > 0: 
        rlt += 1
print(rlt)

문제 출처

https://codeforces.com/contest/158/problem/A

반응형

+ Recent posts