1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Paiza Cランク獲得問題(Dランク相当) 配列活用メニュー

Posted at

paizaのCランク獲得問題の解答がなかったので、備忘録として残します。
明らかに簡単な問題の場合は省略しますが、個人的に少しでも考えたコードを残していきたいと思います。
初心者ですので醜いコードを書きますが、温かい目で見守っていただけると嬉しいです。
また、より良い記述方法などありましたら、コメント等で教えていただけると嬉しいです。

目次

  • 指定の要素のカウント
  • 全ての要素の和
  • 指定要素があるかの判定
  • 指定要素の先頭位置
  • 要素の種類数
  • 【配列を参照する操作】全ての要素に対する操作
  • 配列の順序の反転
  • 指定要素の入れ替え
  • 末尾への要素の追加
  • 指定位置への要素の追加

指定の要素のカウント

問題文

using System;
class Program
{
    public static void Main()
    {
        string []NK=Console.ReadLine().Split();
        int N=int.Parse(NK[0]);
        int K=int.Parse(NK[1]);
        int []A=new int [N];
        int count=0;
        for(int i=0;i<N;i++){
            A[i]=int.Parse(Console.ReadLine());
            if(A[i]==K){
                count++;
            }
        }
        Console.WriteLine(count);
    }
}

全ての要素の和

問題文

using System;

class Program
{
    public static void Main()
    {
        int N =int.Parse(Console.ReadLine());
        int [] A= new int [N];
        for(int i=0;i<N;i++){
            A[i]=int.Parse(Console.ReadLine());
        }
        int sum=0;
        for(int i=0;i<N;i++){
            sum+=A[i];
        }
        Console.WriteLine(sum);
    }
}

Linq のA.Sum()を用いても出来ます。
次の最大値もA.Max()で出来ます。
その次の最小値もA.Min()で出来ます。

指定要素があるかの判定

問題文

using System;


class Program
{
    public static void Main()
    {
        string [] NK=Console.ReadLine().Split();
        int N=int.Parse(NK[0]);
        int K=int.Parse(NK[1]);
        int [] A= new int [N];
        int count=0;
        for(int i=0;i<N;i++){
            A[i]=int.Parse(Console.ReadLine());
            if(A[i]==K){
                count++;
            }
        }
        if(count!=0){
            Console.WriteLine("Yes");
        }else{
            Console.WriteLine("No");
        }
        
    }
}

指定要素の先頭位置

問題文

using System;


class Program
{
    public static void Main()
    {
        string [] NK=Console.ReadLine().Split();
        int N=int.Parse(NK[0]);
        int K=int.Parse(NK[1]);
        int [] A= new int [N];
        int count=0;
        for(int i=0;i<N;i++){
            A[i]=int.Parse(Console.ReadLine());
        }
        int Index = -1;
        for (int i = 0; i < N; i++)
        {
            if (A[i] == K)
            {
                Index = i+1;
                break;
            }
        }
        
        Console.WriteLine(Index);
        
    }
}

要素の種類数

問題文

using System;
using System.Collections.Generic;
class Program
{
    public static void Main()
    {
        int N =int.Parse(Console.ReadLine());
        int [] A= new int [N];
        
        for(int i=0;i<N;i++){
            A[i]=int.Parse(Console.ReadLine());
        }
         HashSet<int> value = new HashSet<int>();
        for (int i = 0; i < N; i++)
        {
            value.Add(A[i]);
        }
        int reuslt =value.Count;
        Console.WriteLine(reuslt);
        
    }
}

【配列を参照する操作】全ての要素に対する操作

問題文

using System;
using System.Collections.Generic;
class Program
{
    public static void Main()
    {
        string [] NK=Console.ReadLine().Split();
        int N=int.Parse(NK[0]);
        int K=int.Parse(NK[1]);
        int [] A= new int [N];
        
        for(int i=0;i<N;i++){
             int a=int.Parse(Console.ReadLine());
            A[i]=a+K;
            Console.WriteLine(A[i]);
        }
    }
}

配列の順序の反転

問題文

using System;
class Program
{
    public static void Main()
    {
        int N =int.Parse(Console.ReadLine());
        int [] A= new int [N];
        for(int i=0;i<N;i++){
            A[i]=int.Parse(Console.ReadLine());
        }
        Array.Reverse(A);
         foreach (int num in A)
        {
            Console.WriteLine(num);
        }
    }
}

指定要素の入れ替え

問題文

using System;
class Program
{
    public static void Main()
    {
        int N =int.Parse(Console.ReadLine());
        int [] A= new int [N];
        
        for(int i=0;i<N;i++){
            A[i]=int.Parse(Console.ReadLine());
        }

        string [] XY=Console.ReadLine().Split();
        int X=int.Parse(XY[0]);
        int Y=int.Parse(XY[1]);
        int tmp;
        tmp=A[X-1];
        A[X-1]=A[Y-1];
        A[Y-1]=tmp;
        foreach(var result in A){
            Console.WriteLine(result);
        }
        
    }
}

以前どこかでやった気がします。

末尾への要素の追加

問題文

using System;
using System.Collections.Generic;
using System.Linq;
class Program
{
    public static void Main()
    {
        int N =int.Parse(Console.ReadLine());
        int [] A= new int [N];
        
        for(int i=0;i<N;i++){
            A[i]=int.Parse(Console.ReadLine());
        }

        List<int> listA=A.ToList();
        int B =int.Parse(Console.ReadLine());
        listA.Add(B);
        foreach(var list in listA){
            Console.WriteLine(list);
        }
    }
}

指定位置への要素の追加

問題文

using System;
using System.Collections.Generic;
class Program
{
    public static void Main()
    {
        int N =int.Parse(Console.ReadLine());
        int [] A= new int [N];
        
        for(int i=0;i<N;i++){
            A[i]=int.Parse(Console.ReadLine());
        }

        List<int> listA=new List<int>(A);
        string[] nB =Console.ReadLine().Split();
        int n=int.Parse(nB[0]);
        int B=int.Parse(nB[1]);
        listA.Insert(n,B);
        foreach(var list in listA){
            Console.WriteLine(list);
        }
    }
}
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?