선택은 나의 것

[BOJ 백준] 2890번 카약 본문

☽ Algorithm/BOJ

[BOJ 백준] 2890번 카약

Algoribi 2020. 6. 24. 16:10

문제

BOJ 2890 : https://www.acmicpc.net/problem/2890

 

2890번: 카약

문제 상근이는 카약 대회를 개최했다. 대회는 전세계에 생중계되고, 위성이 경기장 전체를 촬영하고 있다. 상근이는 위성 사진을 바탕으로 실시간 순위를 계산하는 프로그램을 만들려고 한다.

www.acmicpc.net

접근

카약이 골인 지점과 가까운 순서대로 순위를 매기면 된다. 이는 간단한 문자열처리 문제로 카약부터 'F'까지의 거리를 세주면 된다. 이때 카약은 무조건 1부터 9까지 9개가 있으며 카약이 없는 행이 존재할 수 있다는 것을 잊지 말자.

 

코드

// algorithm study
// BOJ_2890_카약

#include <iostream>
#include <vector>

using namespace std;

int main() {
    int r, c, num[10];
    cin >> r >> c;
    vector<int> arr[55];
    for (int i = 0; i < r; i++) {
        int counter = 0, save = -1;
        for (int j = 0; j < c; j++) {
            char c;
            cin >> c;
            if (c >= '0' && c <= '9')
                save = c - '0';
            if (save != -1 && c == '.')
                counter++;
        }
        if (save != -1)
            arr[counter].push_back(save);
    }
    int number = 1;
    for (int i = 0; i < 55; i++) {
        if (arr[i].size() == 0)
            continue;
        for (int j = 0; j < arr[i].size(); j++) {
            num[arr[i][j]] = number;
        }
        number++;
    }
    for (int i = 1; i < 10; i++) {
        cout << num[i] << "\n";
    }
    return 0;
}

 

깃 허브 주소 : https://github.com/algoribi/algorithm-study

Comments