paizaのCランク獲得問題の解答がなかったので、備忘録として残します。
明らかに簡単な問題の場合は省略しますが、個人的に少しでも考えたコードを残していきたいと思います。
初心者ですので醜いコードを書きますが、温かい目で見守っていただけると嬉しいです。
また、より良い記述方法などありましたら、コメント等で教えていただけると嬉しいです。
目次
- 配列のソート
- 要素のカウント
- 配列末尾への追加
- 要素の削除
- 要素の挿入
- 要素数の出力
- 全要素の出力
- i 番目の出力 4
- 辞書順に出力 1
- 【文字列の配列】辞書順に出力 Boss
配列のソート
using System;
using System.Linq;
class Program
{
static void Main()
{
int N=int.Parse(Console.ReadLine());
int[] a = Console.ReadLine().Split(' ').Select(int.Parse).ToArray();
Array.Sort(a);
for(int i=0;i<N;i++){
Console.WriteLine(a[i]);
}
}
}
配列の反転はSortの部分をReverseにすると出来ます。
要素のカウント
using System;
using System.Linq;
class Program
{
static void Main()
{
int[] NM= Console.ReadLine().Split(' ').Select(int.Parse).ToArray();
int[] a = Console.ReadLine().Split(' ').Select(int.Parse).ToArray();
int N=NM[0];
int M=NM[1];
int count=0;
for(int i=0;i<N;i++){
if(a[i]==M){
count++;
}
}
Console.WriteLine(count);
}
}
配列末尾への追加
using System;
using System.Linq;
class Program
{
static void Main()
{
int[] NM= Console.ReadLine().Split(' ').Select(int.Parse).ToArray();
int[] a = Console.ReadLine().Split(' ').Select(int.Parse).ToArray();
int N=NM[0];
int M=NM[1];
Array.Resize(ref a,a.Length+1);
a[a.Length-1]=M;
for(int i=0;i<N+1;i++){
Console.WriteLine(a[i]);
}
}
}
要素の削除
using System;
using System.Linq;
using System.Collections.Generic;
class Program
{
static void Main()
{
int[] NM= Console.ReadLine().Split(' ').Select(int.Parse).ToArray();
int[] a = Console.ReadLine().Split(' ').Select(int.Parse).ToArray();
int N=NM[0];
int M=NM[1];
var list =a.ToList();
list.RemoveAt(M-1);
a=list.ToArray();
for(int i=0;i<a.Length;i++){
Console.WriteLine(a[i]);
}
}
}
初めからListで受け取ったほうがスムーズでした。
要素の挿入
using System;
using System.Linq;
using System.Collections.Generic;
class Program
{
static void Main()
{
int[] NMK= Console.ReadLine().Split(' ').Select(int.Parse).ToArray();
List<int> a = Console.ReadLine().Split(' ').Select(int.Parse).ToList();
int N=NMK[0];
int M=NMK[1];
int K=NMK[2];
a.Insert(M-1,K);
int[]array=a.ToArray();
for(int i=0;i<array.Length;i++){
Console.WriteLine(a[i]);
}
}
}
要素数の出力
using System;
class Program
{
static void Main()
{
string[] strings = new string[]
{
"Hello",
"paiza",
"1234",
"pa13"
};
int count = strings.Length;
Console.WriteLine(count);
}
}
全要素の出力
using System;
class Program
{
static void Main()
{
string[] strings = new string[]
{
"good",
"morning",
"paiza",
"813",
"pa13"
};
foreach(string item in strings){
Console.WriteLine(item);
};
}
}
以降しばらくはほぼ同じです。
i 番目の出力 4
using System;
using System.Linq;
class Program
{
static void Main()
{
int [] NML=Console.ReadLine().Split(' ').Select(int.Parse).ToArray();
string [] strings=Console.ReadLine().Split();
int N=NML[0];
int M=NML[1];
int L=NML[2];
string moji=strings[N-1];
char m = moji[L-1];
Console.WriteLine(m);
}
}
辞書順に出力 1
using System;
class Program
{
static void Main()
{
string[] strings = new string[]
{
"zaipa",
"izapa",
"paiza"
};
Array.Sort(strings);
foreach(string val in strings){
Console.WriteLine(val);
}
}
}
【文字列の配列】辞書順に出力 Boss
using System;
using System.Linq;
class Program
{
static void Main()
{
int [] NK=Console.ReadLine().Split(' ').Select(int.Parse).ToArray();
string []strings =Console.ReadLine().Split();
int K=NK[1];
Array.Sort(strings);
Console.WriteLine(strings[K-1]);
}
}