Paiza x Java Dの問題といていきますよ。コード付き
Paiza x Java Dの問題といていきますよ。コード付き
みなさん、こんにちは
Paizaというサイトをご存じですか?コーディング力、アルゴリズムなどを鍛えるサイトです。
そちらのサイトの問題をJavaを使って解いてきます。
よかったら参考にしてくださいね。
文字列の書き換え 2021/10/04
https://paiza.jp/works/mondai/string_primer/normal_step3
package com.company;
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
//置換対象となる文字列の入力
String inputString = sc.next();
//置換対象の文字列位置
Integer pos = sc.nextInt();
//置換対象の文字
String c = sc.next();
//新しい文字列を生成するためのStringBuilder
StringBuilder newString = new StringBuilder(inputString);
//setCharAtというメソッドで文字を置換します。
newString.setCharAt(pos - 1,c.charAt(0));
//標準出力
System.out.println(newString);
}
}
2 行目で与えられる N 個の実数の入力 2021/10/04
https://paiza.jp/works/mondai/stdin_primer/stdin_primer__real_number_step2
package com.company;
import java.math.BigDecimal;
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
//入力される数値の数
Integer inputNumber = sc.nextInt();
//文字列 or BigDecimalどちらか片方で対応可能
//入力された実数(文字列として保存)
List<String> realNumbers = new ArrayList<String>();
//入力された実数(BigDecimalとして保存)
//BigDecimalは、実数を表現する1つの方法です。
//誤差が発生しないという特徴があります。
//あと有効桁数を保持してくれてます。
//1という数字と1.0という数字は同じではありません。
//1という数字は、もしかしたら1.5かもしれないからです。
List<BigDecimal> realNumbers2 = new ArrayList<BigDecimal>();
for(int i = 0; i < inputNumber; i++)
{
String num = sc.next();
//今回の問題は、必ずしもリストにいれる必要がないのですが
//リストの使い方を学んでほしかったのでいれました。
//他にも配列にいれる方法もありますね。
realNumbers.add(num);
realNumbers2.add(new BigDecimal(num));
}
for (var each: realNumbers2) //realNumbersでも同じ結果になります。
{
System.out.println(each);
}
}
}
N行のデータの入力 2021/10/05
https://paiza.jp/works/mondai/stdin/stdin_n_line
package com.company;
import java.math.BigDecimal;
import java.util.*;
import java.util.stream.IntStream;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
//入力文字列格納
var datas = new ArrayList<String>();
//入力個数
var inputNum = sc.nextInt();
//これわかります?
//0からinputNum - 1の回数分の処理を実行します。
//forEachメソッドの引数はラムダ式と呼ばれます。
//for文でももちろんかけますね。
IntStream.range(0,inputNum).forEach(
num -> datas.add(sc.next())
);
//ここでもラムダ式をつかってます。
datas.forEach(
data -> System.out.println(data)
);
}
}
満員電車の乗車率 2021/10/05
https://paiza.jp/works/mondai/drankfast/d13_crowded_train
生徒さんがといてくれました。とっても嬉しいです!
import java.util.*;
import java.math.BigDecimal;
public class Main {
public static void main(String[] args) {
// 自分の得意な言語で
// Let's チャレンジ!!
Scanner sc = new Scanner(System.in);
double n = sc.nextDouble();
double d = n/140.0*100;
d = Math.floor(d);
int result = (int)d;
System.out.println(result+"%");
}
}
0から9までのカウンタ 2021/10/05
https://paiza.jp/works/mondai/drankfast/d14_counting
package com.company;
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
//開始の数
var startNum = sc.nextInt();
for(var i = 0; i < 10;i++)
{
System.out.println((startNum + i) % 10);
}
}
}
さまざまな長さの配列の和 2021/10/08
生徒さんがといてくれました。
loopがネストのがポイントですね。
https://paiza.jp/works/mondai/double_roop_problems/double_roop_problems__various_row_sum
public class Main {
public static void main(String[] args) {
// 自分の得意な言語で
// Let's チャレンジ!!
Scanner sc = new Scanner(System.in);
int sum = 0;
String str = sc.nextLine();
int n = Integer.parseInt(str);
for(int i=0; i<n;i++){
String str2 = sc.nextLine();
String[] datas = str2.split(" ");
for (int j = 1; j < datas.length; j++) {
sum += Integer.parseInt(datas[j]);
}
System.out.println(sum);
sum = 0;
}
}
}
こちらは私がときました。
package com.company;
import java.sql.Array;
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
//行数
var rowNum = sc.nextInt();
//1行にいくつデータがあるか格納する
var rows = new ArrayList<Integer>();
//データ自体を格納する。
var datas = new ArrayList<Integer>();
for(var i = 0; i < rowNum;i++)
{
var rowWidth = sc.nextInt();
rows.add(rowWidth);
for(var j = 0; j < rowWidth;j++)
{
datas.add(sc.nextInt());
}
}
int index = 0;
for (var each:rows) {
int total = 0;
for(var i = 0; i < each;i++)
{
total += datas.get(index);
index++;
}
System.out.println(total);
}
}
}
素数の個数 2021/10/11
https://paiza.jp/works/mondai/double_roop_problems/double_roop_problems__prime_number_easy
package com.company;
import java.sql.Array;
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int primaryCount = 0;
for (int i = 2;i <= n; i++)
{
boolean isPrimary = true;
for(int j = 2;j < i;j++)
{
if(i % j == 0)
{
isPrimary = false;
break;
}
}
if(isPrimary)
{
primaryCount++;
}
}
System.out.println(primaryCount);
}
}