Aisakaプログラミングblog

2020/01/01〜WPF(Windowsデスクトップアプリ開発)の取組を中心に行います。

その他プログラミング

AtCoder Beginner Contest 14B【ビットシフト】

ビットシフトについて使い方が分かりやすい問題です。 atcoder.jp 問題概要 この問題は、購入した商品(とある集合における任意の部分集合)の価格を合計するという問題です。各商品はビットが立っている箇所で表現されています。商品の価格はべつの配列で表…

AtCoder Beginner Contest 169 C:Multiplication 3

はじめに decimalを使用すれば精度高く浮動小数点が式中に登場する式の積が求められるらしいことはコンテスト中に分かったが、解答に至らなかったので、復習。 atcoder.jp decimalの使用に適した形が理解できたのでメモ。 条件 問題文として与えられている条…

競技プログラミング Atcoder Beginner Contest 167 C Skill #ビット演算 #全探索

全探索とビット演算を覚えたのでメモ。 これから全探索にビット演算を活用していきたい。 using System; using System.Collections.Generic; using System.Linq; namespace easy_Atcoder { class Program { static void Main(string[] args) { int[] NMX = A…

競技プログラミング 個人的メモ(2)【C#】

具体事例 X以下の最大の冪乗数を求める 入力文字列を90度回転 具体事例 X以下の最大の冪乗数を求める int X = int.Parse(Console.ReadLine()); int ans = 1; for(var i = 2; i*i <= X; i++){ //2乗フィルタ for(var j = i*i; j <=X; j*=i){ //2乗以上フィル…

AtCoder Beginner Contest 150 C 【C#】

ざっと解説 ようやく理解したのでメモ。 コメントに全て解説を記述しています。同じ内容で提出しているのでどちらが検索に出てくるか。。。 色々他の人の解法を見ましたが、よくわからなかったのでノートに一行ずつ日本語で解説を書くノリで 全部書いていま…

Dictionary<long,long>をList<Tuple<long,long>>に変えるとACになった件【競技プロ】【C#】

Atcoder Begin Contest 121のC問題をときました。 atcoder.jp最初のコードがDictionary型で書いたもの、次のコードがTuple型で書いた物。 ACになったのはList>型。忘れないようにメモ。 Dictionary using System; using System.Linq; using System.Collectio…

競技プログラミング 個人的メモ【C#】

競技プログラミングを行う際にいつも用いるものを纏めます。 型が異なる事によるWAには要注意 読み込み、出力など 読み込み系 一行読みこむ(整数) 複数文字列の一行を読みこむ(空白区切り、整数に変換) 複数文字列の複数行を読みこむ(空白区切り、整数…

PythonでWEBスクレイピングする

WEBスクレイピング コード XPathの確認方法 htmlフォームからの情報取得 WEBスクレイピング コード Pythonでメルカリの情報取得したかったので、このサイトを参考に取り組みました。メルカリをスクレイピングして商品リンク、画像、価格を取得する - Python…

Pythonで簡単にできる!二つの画像の特徴点を結ぶプログラム!

プログラミング言語Pythonを使用して、特徴抽出を行います。 Pythonを触ったことすらない方も取り組めるように、環境準備から行います。 環境として必要なものは下記の通りです。 下記の環境準備ができている方は、「特徴点を結ぶ」からご覧ください。 環境…

gnuplotで3次元グラフを描画する・入力コマンドをフォーマット化する

gnuplotで3次元図を表示する方法を書いていきます。合わせて、「グラフの色の変更、軸ラベルの表示・設定、入力コマンドのフォーマット化」についても記述させていただきます。 インストールがまだの方はこちらから! infoaisaka.hatenablog.com 3次元図を…

30日の学習の成果は?(AtCoder(競プロ)1日1問【30日目】【Python】【最終日】)

本日はAtCoder Beginner Contest 102の開催日 時間:20:30〜22:10 AtCoder Beginner Contest 102 - AtCoder 今までの練習の成果の検証です。 AtCoder30日毎日1問の成果 他人のコードで方法を学ぶ 結果 感想 AtCoder30日毎日1問の成果 A問題とB問題は、練習の…

AをBで割った時の商を出力する(AtCoder(競プロ)1日1問【29日目】【Python】)

AtCoder Beginner Contest 087 A問題 A - Buying Sweets 本日のポイントは「AをBで割った時の商を出力する」です。 AをBで割った時の商を出力する コードの改善 AをBで割った時の商を出力する #input()の時点でX - A を完了させておく X_A = int(input()) - …

sorted()の出力を降順にする(AtCoder(競プロ)1日1問【28日目】)

AtCoder Beginner Contest 088 B問題 競技プログラミングで使える関数を実際の問題を通して紹介いたします。 今回は「sorted()」です。 sorted()の出力を降順にする N=input() a= sorted([int(j) for j in input().split()],reverse=True) print(sum(a[:…

条件によりprint文の出力を変更する(AtCoder(競プロ)1日1問【27日目】【Python】)

AtCoder Beginner Contest 088 A問題 競技プログラミングで使える関数を実際の問題を通して紹介いたします。 今回は「print()」です。 条件によりprint文の出力を変更する n=int(input())a=int(input())print(['No','Yes'][n-(n//500)/(1/500)-a<=0]) 理屈…

set()で重複をなくす(AtCoder(競プロ)1日1問【26日目】【Python】)

AtCoder Beginner Contest 089 B問題 競技プログラミングで使える関数を実際の問題を通して紹介いたします。 今回は「set()」です。 set()で重複をなくす >|python| n = int(input())type = len(set([ i for i in input().split()]))print(["Three","Fou…

除算の商のみ出力させる(AtCoder(競プロ)1日1問【25日目】【Python】)

AtCoder Beginner Contest 089 A問題 A - Grouping 2 競技プログラミングで使える関数を実際の問題を通して紹介いたします。 今回は「//」です。 除算の商のみ出力させる 入力数を1グループ3人以上のグループに分けるとき、 作ることができるグループの最…

配列を逆順に出力する[ : : -1](AtCoder(競プロ)1日1問【24日目】【Python】)

AtCoder Beginner Contest 090 B問題 競技プログラミングで使える関数を実際の問題を通して紹介いたします。 今回は「[::-1]」です。 与えられた数字列二つの範囲で回文数となる数字の個数を求めよ。という問題。 回文数:逆順にしても同じ数字。 配列を逆順…

入力数をリスト化する(AtCoder(競プロ)1日1問【23日目】【Python】)

AtCoder Beginner Contest 090 A問題 A - Diagonal String 競技プログラミングで使える関数を実際の問題を通して紹介いたします。 今回は「入力数をリスト化」です。 入力数をリスト化 この問題はこういうイメージ この図で言うと、「aei」を出力してほしい…

リストへの要素の追加・削除(AtCoder(競プロ)1日1問【22日目】【Python】)

AtCoder Beginner Contest 091 B問題 B - Two Colors Card Game 競技プログラミングで使える関数を実際の問題を通して紹介いたします。 今回は「リストへの要素の追加・削除」です。 今回の問題は図的にいうとこのようなイメージです。 オレンジ色の玉の数を…

split()で文字列の分割(AtCoder(競プロ)1日1問【21日目】【Python】)

AtCoder Beginner Contest 091 A問題 A: Two Coins - AtCoder Beginner Contest 091 | AtCoder 競技プログラミングで使える関数を実際の問題を通して紹介いたします。 今回は「split()」です。 split()で文字列の分割 A,B,C= map(int,input().split()) p…

map()で文字列を数字に変換(AtCoder(競プロ)1日1問【20日目】【Python】)

AtCoder Beginner Contest 092 B問題 B - Chocolate 競技プログラミングで使える関数を実際の問題を通して紹介いたします。 今回は「map()」です。 問題 N人が参加してD日間行われた。 i人目の参加者は合宿の 日目にチョコレートを一つずつ食べる。 合宿終…

最小値を返すmin()(AtCoder(競プロ)1日1問【19日目】【Python】)

AtCoder Beginner Contest 092 A問題 abc092.contest.atcoder.jp 競技プログラミングで使える関数を実際の問題を通して紹介いたします。 今回は「min()」です。 min関数により最小値を返す min関数は、引数の中で最も小さい値を返り値とします。 例えば、…

条件に応じて出力を変える[]を用いた記法(AtCoder(競プロ)1日1問【18日目】【Python】)

AtCoder Beginner Contest 093 B問題 B - Small and Large Integers 競技プログラミングで使える関数を実際の問題を通して紹介いたします。 今回は「を用いた記法」です。 を用いた記法 A,B,K = map(int,input().split()) K = [ B - A , K ][ K < ( B - A ) …

配列に指定文字が存在するか確かめる(AtCoder(競プロ)1日1問【17日目】【Python】)

AtCoder Beginner Contest 093 A問題 競技プログラミングで使える関数を実際の問題を通して紹介いたします。 今回は「配列に指定文字が存在するか確かめる」です。 配列に指定文字が存在するか確かめる S = input() print(["No","Yes"]["a" in S and "b" in …

条件が一致した値以外を配列に追加する方法(AtCoder(競プロ)1日1問【16日目】【Python】)

AtCoder Beginner Contest 094 B問題 B - Toll Gates 競技プログラミングで使える関数を実際の問題を通して紹介いたします。 今回は「not in」です。 条件が一致した値以外を配列に追加 N,M,X = map(int,input().split()) toll_index = [int(i) for i in inp…

条件分岐によりprint文の出力結果を変える(AtCoder(競プロ)1日1問【15日目】【Python】)

AtCoder Beginner Contest 094 A問題 A - Cats and Dogs 競技プログラミングで使える関数を実際の問題を通して紹介いたします。 今回は「print×条件分岐」です。 print文×条件分岐 A,B,X = map(int,input().split()) print("YES") if B >= X - A and A <= X …

複数回のinput()結果を配列に格納する(AtCoder(競プロ)1日1問【14日目】【Python】)

AtCoder Beginner Contest 095 B問題 abc095.contest.atcoder.jp 競技プログラミングで使える関数を実際の問題を通して紹介いたします。 今回は「input( )」です。 複数回のinput( ) 所持金:X円 最低限作りたいドーナツの種類:N ドーナツの素の値段: でN…

文字列中の特定の文字の数を取得する(AtCoder(競プロ)1日1問【13日目】【Python】)

AtCoder Beginner Contest 095 A問題 abc095.contest.atcoder.jp 競技プログラミングで使える関数を実際の問題を通して紹介いたします。 今回は「count( )」です。 print(input().count('o')*100+700) input( )で入力された文字列の中で、今回は"o"の数がト…

余りを出力する(AtCoder(競プロ)1日1問【12日目】【Python】)

AtCoder Beginner Contest 099 C問題 abc099.contest.atcoder.jp 競技プログラミングで使える関数を実際の問題を通して紹介いたします。 今回は「%」です。 余りを出力する N = int(input()) res = N for i in range(N + 1): cc = 0 t = N - i while t > 0: …

range( ) でリストを生成する(AtCoder(競プロ)1日1問【11日目】【Python】)

AtCoder Beginner Contest 099 B問題 abc099.contest.atcoder.jp 競技プログラミングで使える関数を実際の問題を通して紹介いたします。 今回は「range( )」です。 今回の問題を解くためには、1〜?の範囲の数字を足す表現を用います。 sum(range(1,b-a+1))で…