paiza レベルアップ問題集 「STEP: 1 改行区切りでの N 個の整数の入力」をPythonとGASで解いてみた

この記事を読むことで、Pythonで標準入力を用いて数列の数と全ての数列をループの中で出力することが可能になります。GASではスプレッドシートで値を取得して、ループを使わずに出力しています。

このコーナーでは、学習コンテンツpaizaラーニングレベルアップ問題集をPythonとGASの両方で解いて全コードの解説をしています。
PythonとGASの両方のコードを用いて、全コード及び部分的にも可能な限り詳細に記載いたしました。

GASはスプレッドシートを使っています。
GASはGoogle Apps Scriptと言って、JavaScriptの文法をベースにしているので、JavaScriptの学習中の方にもお役立て出来るかも知れません。

サイトマップはこちらから

paizaレベルアップ問題集でPythonとGASを解いて見たに戻る
メインメニューに戻る
Python自作サンプル
GASサンプル
基本情報技術者試験

paizaでの解答はPythonで行いましたが、この記事ではPythonのコードと共に、同じ問題を現在学習中のGASだったらどう解くのか、スプレッドシートでバインドして作ってみました。

改行区切りでの N 個の整数の入力 (paizaランク D 相当)

問題:

1 行目で整数 N が与えられます。
2 行目以降で、N 個の整数 a_1, … , a_N が N 行で与えられます。
a_1, … , a_N を改行区切りで出力してください。

ではまず、Pythonで解いてみます。

今回は、paiza.ioを使って解きます。paiza.ioの使い方はこちらから。

■ Pythonでの解き方 ■

手順として、

1:標準入力で整数の数Nを取得する
2:ループの中で標準入力を使い、N個全ての整数を出力する

の2ステップで行います。

今回は入出力例1を用います。

入力例1
20
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

出力例1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

まず、準備として、paiza.ioにこのように入力します。
(入力例1 をコピペしたのみ)

下記のコードで入力と出力を行います。

#1:標準入力で整数の数Nを取得する
N=int(input())

#2:ループの中で標準入力を使い、N個全ての整数を出力する
for i in range(N):
    temp=int(input())
    print(temp)

このコードの実行(出力)結果です。

Pythonは以上です。

次は、GASで解いて行きます。

■ GASでの解き方 ■

今度は、同じ問題をGASで解いてみます。
まず、スプレッドシートにこの様に配置しました。

緑色のセルに入力した、数列の個数を取得して、灰色の所の数列を取得し、それを黄色いセルに出力します。その際、この灰色のセル、黄色いセルの所には、二次元配列として取得した整数が格納された配列を出力します。

※スプレッドシートに表示する場合は、二次元配列としての配列に追加をして作成します※

手順はこのようになります。

1:SpreadSheetAppから階層を辿って現在のシートにアクセスする

2:緑のセルにある数列の個数Nを取得

3:灰色のセルN行1列を配列arrayに取得

4:取得したarrayをログ出力する

5:スプレッドシートの黄色い所に格納する

手順1: SpreadSheetAppから階層を辿って現在のシートにアクセスする

const ss = SpreadsheetApp.getActiveSheet();

ここで定数ssにSpreadsheetAppから階層を辿ってアクティブシートにアクセスしています。

手順2:緑のセルにある数列の個数Nを取得

const N=ss.getRange(1,1).getValue();

手順3:灰色のセルN行1列を配列arrayに取得

const array=ss.getRange(2,1,N).getValues();

手順4:取得したarrayをログ出力する

console.log(array);

手順5:スプレッドシートの黄色い所に格納する

ss.getRange(1,3,N).setValues(array);

実行後のスプレッドシートです。

GASでの全コードはこちらになります。

function standardInput24(){

  //SpreadSheetAppから階層を辿って現在のシートにアクセスする
  const ss=SpreadsheetApp.getActiveSheet();

  //緑のセルにある数列の個数Nを取得
  const N=ss.getRange(1,1).getValue();

  //灰色のセルN行1列を配列arrayに取得
  const array=ss.getRange(2,1,N).getValues();

  //取得したarrayをログ出力する
  console.log(array);

  //スプレッドシートの黄色い所に格納する
  ss.getRange(1,3,N).setValues(array);
}

宜しかったらコピペしてアレンジして見て下さい。
お疲れ様でした、ブレイクタイムフォトはこちらになります。

代々木公園のバラ

プログラミングのアンケートにご協力頂ける方はこちらのフォームで勉強法など色々と教えて下さい。

←前の問題へ          次の問題へ→

paiza レベルアップ問題集 「FINAL問題 【整数の半角スペース区切りの入力】1,000個の整数の半角スペース区切りの入力」をPythonとGASで解いてみた

この記事を読むことで、Pythonで標準入力でsplitメソッドを使って、半角スペース区切りの整数を千個取得し、1000行の整数を出力する方法が学べます。GASではスプレッドシートで値を取得して出力しています。

このコーナーでは、学習コンテンツpaizaラーニングレベルアップ問題集をPythonとGASの両方で解いて全コードの解説をしています。
PythonとGASの両方のコードを用いて、全コード及び部分的にも可能な限り詳細に記載いたしました。

GASはスプレッドシートを使っています。
GASはGoogle Apps Scriptと言って、JavaScriptの文法をベースにしているので、JavaScriptの学習中の方にもお役立て出来るかも知れません。

サイトマップはこちらから

paizaレベルアップ問題集でPythonとGASを解いて見たに戻る
メインメニューに戻る
Python自作サンプル
GASサンプル
基本情報技術者試験

【整数の半角スペース区切りの入力】1,000個の整数の半角スペース区切りの入力 (paizaランク D 相当)

問題:

整数 a_1, a_2, … , a_999, a_1000 が半角スペース区切りで与えられるので、改行区切りにして 1000 行で出力してください。

ではまず、Pythonで解いてみます。

今回は、paiza.ioを使って解きます。paiza.ioの使い方はこちらから。

■ Pythonでの解き方 ■

手順として、

1:標準入力でsplitメソッドを使って半角スペース区切りの整数をリストで取得する

2:取得したリストをループで出力する

の2ステップで行います。

今回は入出力例1(1000個ある為省略)を用います。

まず、準備として、paiza.ioにこのように入力します。
(入力例1 をコピペしたのみ)画像の一部です。

下記のコードで入力と出力を行います。

array=list(map(int,input().rstrip().split(' ')))
#print(array)

for num in array:
    print(num)

このコードの実行(出力)結果です。

Pythonは以上です。

次は、GASで解いて行きます。

■ GASでの解き方 ■

今度は、同じ問題をGASで解いてみます。
まず、スプレッドシートにこの様に配置しました。

緑色のセルに入力した整数を取得して、それを黄色いセルに出力します。その際、この黄色いセルの所には、splitメソッドを用いて数字列を分割して、二次元配列として取得した整数が格納された配列を出力します。

※スプレッドシートに表示する場合は、二次元配列としての配列に追加をして作成します※

手順はこのようになります。

1:SpreadSheetAppから階層を辿って現在のシートにアクセスする

2:緑のセルの整数をsplitメソッドを使って配列arrayに格納する

3:配列arrayのログ出力

4:スプレッドシートに格納する為に、array2に二次元配列として格納する

5:スプレッドシートに格納前に、array2をログ出力する

6:スプレッドシートの黄色い所に格納する

手順1: SpreadSheetAppから階層を辿って現在のシートにアクセスする

const ss = SpreadsheetApp.getActiveSheet();

ここで定数ssにSpreadsheetAppから階層を辿ってアクティブシートにアクセスしています。

手順2:緑のセルの整数をsplitメソッドを使って配列arrayに格納する

const array=ss.getRange(1,1).getValue().split(‘ ‘);

手順3:配列arrayのログ出力

console.log(array);

手順4:スプレッドシートに格納する為に、array2に二次元配列として格納する

//スプレッドシートに格納する為に、array2に二次元配列として格納する
  let array2=[];
  for(let i=0;i<array.length;i++){
    array2.push([array[i]]);
  }

手順5:スプレッドシートに格納前に、array2をログ出力する

console.log(array2);

手順6:スプレッドシートの黄色い所に格納する

ss.getRange(3,1,array2.length).setValues(array2);

実行後のスプレッドシートです。

GASでの全コードはこちらになります。

function standardInput23(){

  //SpreadSheetAppから階層を辿って現在のシートにアクセスする
  const ss=SpreadsheetApp.getActiveSheet();
  
  //緑のセルの整数をsplitメソッドを使って配列arrayに格納する
  const array=ss.getRange(1,1).getValue().split(' ');
  
  //配列arrayのログ出力
  console.log(array);

  //スプレッドシートに格納する為に、array2に二次元配列として格納する
  let array2=[];
  for(let i=0;i<array.length;i++){
    array2.push([array[i]]);
  }

  //スプレッドシートに格納前に、array2をログ出力する
  console.log(array2);

  //スプレッドシートの黄色い所に格納する
  ss.getRange(3,1,array2.length).setValues(array2);

}

宜しかったらコピペしてアレンジして見て下さい。
お疲れ様でした、ブレイクタイムフォトはこちらになります。

サンシャイン水族館、空飛ぶペンギン

プログラミングのアンケートにご協力頂ける方はこちらのフォームで勉強法など色々と教えて下さい。

←前の問題へ          次の問題へ→