Machineboy空
B140:ネズミ駆除 OrderByDescending 본문
문제요약
2차원 배열에 N개의 덫을 설치하여 최대한 많은 쥐를 잡아라.
https://paiza.jp/works/challenges/686/retry
ログイン
ログイン画面です。|ITエンジニア・プログラマ向け総合求職・学習サイト【paiza】
paiza.jp
区画(くかく) |
구획 |
分布(ぶんぷ) | 분포 |
난이도
Rank B
풀이 포인트
- T가 h*w 보다 클 수 있음에 대한 예외 처리
- List 내림차순
List<int> list = new List<int>();
list.Sort();
list.Reverse();
using System.Linq;
var sorted = list.OrderByDescending(x => x).ToList();
REVIEW
문제자체는 쉬운데 칸의 수보다, 덫의 수가 많아질 수 있다는 것을 간과해,
인덱스 에러가 났었다. 그리고 List 정렬이 아직 자유자재로 되지 않는다.
CODE
using System;
using System.Linq;
using System.Collections.Generic;
class Program
{
static void Main()
{
var line = Console.ReadLine().Split().Select(int.Parse).ToArray();
int h = line[0];
int w = line[1];
int[,] grid = new int[h,w];
var line2 = Console.ReadLine().Split().Select(int.Parse).ToArray();
int n = line2[0];
int t = line2[1];
for(int i = 0; i < n; i++)
{
var row = Console.ReadLine().Split().Select(int.Parse).ToArray();
int a = row[0]-1;
int b = row[1]-1;
grid[a,b]++;
}
List<int> list = new List<int>();
for(int i = 0; i < h; i++){
for(int j = 0; j < w; j++){
list.Add(grid[i,j]);
}
}
list.Sort();
list.Reverse();
int sum = 0;
t = Math.Min(t, list.Count);
for(int i = 0; i < t; i++){
sum += list[i];
}
Console.WriteLine(sum);
}
}
'Computer > Coding Test' 카테고리의 다른 글
B081:花壇のロープ (0) | 2025.05.27 |
---|---|
A074:オリオン座 (0) | 2025.05.16 |
B145:ビンゴゲームの判定 - 2중 For 문 LINQ (0) | 2025.05.12 |
A082:ショッピングモール建設計画 - DFS 기본 (0) | 2025.04.11 |
B068:チョコの分割 - 누적합 (0) | 2025.04.11 |