일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |
Tags
- db
- Programmers
- network
- 네트워크
- Computer Science
- 운영체제
- algogritim
- 백준
- c++
- 감상문
- swea
- 법의학
- language
- Database
- 독서
- 자료구조
- cs
- 재테크/투자
- 데이터베이스
- SW Expert Academy
- data structure
- D3
- 프로그래머스
- OS
- BOJ
- 알고리즘
- algorithm
- 문제풀이
- LeetCode
- D2
Archives
- Today
- Total
선택은 나의 것
[BOJ 백준] 2890번 카약 본문
문제
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;
}
'☽ Algorithm > BOJ' 카테고리의 다른 글
[BOJ 백준] 9205번 맥주 마시면서 걸어가기 (0) | 2020.07.07 |
---|---|
[BOJ 백준] 7568번 덩치 (0) | 2020.07.03 |
[BOJ 백준] 1439번 뒤집기 (0) | 2020.06.24 |
[BOJ 백준] 1715번 카드 정렬하기 (0) | 2020.06.15 |
[BOJ 백준] 1700번 멀티탭 스케줄링 (0) | 2020.06.10 |
Comments