落書きノート

ふと自分が気になった事を書いてます

アルゴリズム

Javaで問題を解く CodingBat

// intMax public int intMax(int a, int b, int c) { int max = a; if(max < b) max = b; if(max < c) max = c; return max; } // close10 public int close10(int a, int b) { int a1 = Math.abs(a - 10); int b1 = Math.abs(b - 10); if(a1 == b1) return…

C言語で問題を解く

解きながら学ぶC言語作者: 柴田望洋,肘井真一,高木宏典,赤尾浩出版社/メーカー: ソフトバンククリエイティブ発売日: 2004/11/09メディア: 単行本購入: 2人 クリック: 43回この商品を含むブログ (9件) を見る // q3-4 #include <stdio.h> int main(void) { char buf[10</stdio.h>…

Javaで問題を解く CodingBat

解いた問題全てをこのブログに載せているというわけではないです。載せたいものだけ載せてます(大したことのないものも載せてますけど)。裏でこそこそやってる時もあります。笑 // loneTeen public boolean loneTeen(int a, int b) { return a >= 13 && a …

Javaで問題を解く

ちょっと組んだのが複雑過ぎたかも…。もう少しシンプルにやれるのですが、用途が限定されるのが悩み。多分このコードも要素数をいじられたら誤作動が起きそうですけど、一応こういうふうに作りました。解法を見てまた今度やり直すかも。 世界で闘うプログラ…

C++で問題を解く AIZU ONLINE JUDGE

// Matrix Multiplication #include <iostream> #include <algorithm> using namespace std; int main(void) { int n,m,l; cin >> n >> m >> l; long long A[n][m],B[m][l],C[n][l]; fill(C[0], C[n], 0); for(int i = 0; i < n; i++) for(int j = 0; j < m; j++) cin >> A[i][j];</algorithm></iostream>…

Javaで問題を解く CodingBat

// or35 public boolean or35(int n) { return n >= 0 && n % 3 == 0 || n % 5 == 0 ? true : false; } // front22 public String front22(String str) { String answer = ""; if(str.length() <= 2) answer = str + str + str; else { String first = str.s…

Javaで問題を解く CodingBat

// frontBack public String frontBack(String str) { String answer = ""; if(!str.equals("") && str.length() > 1) { answer += str.charAt(str.length() - 1); for(int i = 1; i < str.length() - 1; i++) { answer += str.charAt(i); } answer += str.c…

Javaで問題を解く

世界で闘うプログラミング力を鍛える本 ~コーディング面接189問とその解法~作者: Gayle Laakmann McDowell,岡田佑一,小林啓倫出版社/メーカー: マイナビ出版発売日: 2017/02/27メディア: 単行本(ソフトカバー)この商品を含むブログ (5件) を見る // 問題1.…

C++で問題を解く AIZU ONLINE JUDGE

// Spreadsheet #include <iostream> #include <cstdlib> #include <sstream> #include <algorithm> using namespace std; int main(void) { int r, c; int j = 0; string item, line; cin >> r >> c; cin.ignore(); int sheet[r + 1][c + 1]; int row = 0; int column = 0; fill(sheet[0], sheet[r]</algorithm></sstream></cstdlib></iostream>…

Javaで問題を解く CodingBat

// notString (miss fixed ver.) public String notString(String str) { return str.indexOf("not") == 0 ? str : "not " + str; } // missingChar public String missingChar(String str, int n) { String answer = ""; for(char c : str.toCharArray()) i…

Javaで問題を解く CodingBat

// nearHundred public boolean nearHundred(int n) { return n >= 100 - 10 && n <= 100 + 10 ? true : n >= 200 - 10 && n <= 200 + 10 ? true : false; } // posNeg public boolean posNeg(int a, int b, boolean negative) { return (a >= 0 && b < 0 ||…

Javaで問題を解く CodingBat

// Warmup1 makes10 public boolean makes10(int a, int b) { return a == 10 || b == 10 ? true : a + b == 10 ? true : false; }

Javaで問題を解く

世界で闘うプログラミング力を鍛える本 ~コーディング面接189問とその解法~作者: Gayle Laakmann McDowell,岡田佑一,小林啓倫出版社/メーカー: マイナビ出版発売日: 2017/02/27メディア: 単行本(ソフトカバー)この商品を含むブログ (5件) を見る // q1_5 i…

C++で問題を解く AIZU ONLINE JUDGE

// Grading #include <iostream> using namespace std; int main(void) { int m,f,r; int sum; while(cin >> m >> f >> r && (m != -1 || f != -1 || r != -1)) { sum = m + f; if(m == -1 || f == -1 || sum < 30) cout << 'F' << endl; else if(sum >= 80) cout << '</iostream>…

C++で問題を解く AIZU ONLINE JUDGE

// Matrix Vector Multiplication #include <iostream> #include <cstdlib> #include <sstream> #include <algorithm> using namespace std; int main(void) { int n,m; int t; int mi = 0; string line,item; cin >> n >> m; cin.ignore(); int A[n][m],b[m],answer[n]; fill(A[0], A[n], 0); fill(</algorithm></sstream></cstdlib></iostream>…

C++で問題を解く AIZU ONLINE JUDGE

いやー、苦戦しました。難しかったです。こんな感じです。 // Official House #include <iostream> #include <algorithm> #include <vector> using namespace std; struct data_t { int b; int f; int r; int v; bool operator<(const data_t& right) const { return b == right.b ? f == </vector></algorithm></iostream>…

C言語でアルゴリズムとデータ構造その2 前記事の修正版

考えるプログラムの問題は、結構穴が出来ますね。寝ながら考えているとそう思います。チェック漏れがあったので、ソースコードを修正しました。 新・明解C言語によるアルゴリズムとデータ構造作者: 柴田望洋,辻亮介出版社/メーカー: SBクリエイティブ発売日:…

C言語でアルゴリズムとデータ構造

今日はプログラミングが捗りました。Go言語とCrystal言語。ところで今日の最後にこの本の問題を解いてます。久しぶりにやりました。二分探索法と線形探索法を使った問題です。世界で闘うプログラミング力を鍛える本、いつやるんでしょうかね。自分でも思いま…

Javaで不定期練習

解きながら学ぶJava 入門編作者: 柴田望洋,由梨かおる出版社/メーカー: SBクリエイティブ発売日: 2008/05/24メディア: 単行本購入: 8人 クリック: 72回この商品を含むブログ (9件) を見る // 問題6-21 別解 import java.util.Scanner; class q6_21_another {…

Javaで問題を解く 書き換えて工夫その3

問題1.3です。ダブルクォートに対応させました。いやまあいらないと思うんですけどね。なんとなくやってみました。興味ないという人は流してください。 世界で闘うプログラミング力を鍛える本 ~コーディング面接189問とその解法~作者: Gayle Laakmann McDowe…

Javaで問題を解く 書き換えて工夫その2

これで最後です。次回以降から新しい問題を。問題1.4については大体です。突き詰めて考えると難しいです。 世界で闘うプログラミング力を鍛える本 ~コーディング面接189問とその解法~作者: Gayle Laakmann McDowell,岡田佑一,小林啓倫出版社/メーカー: マイ…

Javaで問題を解く 書き換えて工夫

追記 ソースコードを修正しました。よく見てやらないとな〜。笑 こんな感じに書き換えました。大分良くなったんじゃないでしょうか。後2問だけ書き換えれば新しい問題に取り組めます。まず、ウォーミングアップしよう。 世界で闘うプログラミング力を鍛える…

Javaで問題を再度解く 書き換え

過去に作ったプログラムが、今の自分になぜかわかりにくくなってきたので、改良も兼ねて、再度プログラムを作ってみたんですけど、余計わかりにくくなってるかも…と思いましたが、まあ気にしない。Stringクラスの使い方、よーくわかったような気がします。今…

C++で問題を解く AIZU ONLINE JUDGE

C++11/C++14を使おうと思って型推論を使ってみたら、なぜか変なエラーに阻まれて使えなかったので、今回は普通のC++でやりました。文法、ちゃんと勉強しないと駄目なんですかね。ネットで入門サイトがあるのでそこを参考にしてまたやってみます。連想配列Map…

C++で問題を解く AIZU ONLINE JUDGE

// Reversing Numbers #include <iostream> #include <cstdlib> #include <sstream> using namespace std; int main(int, char ** const) { int n,j = 0; string line, item; cin >> n; int a[n]; cin.ignore(); getline(cin, line); stringstream ss(line); while(getline(ss, item, ' '</sstream></cstdlib></iostream>…

Javaで問題を解く

問題文を見ながら少々考えてました。回文をチェックした後、意味のある単語に並び替えろという出力に見えたので、これで考えすぎました。回文のチェックだけで良かったんですね。これなら簡単です。ハッシュテーブルを使うと簡単にできますね。問題1.4です。…

C++で問題を解く AIZU ONLINE JUDGE

// Print a Chessboard #include <iostream> using namespace std; int main(void) { int H,W; while(cin >> H >> W && H && W) { for(int i = 0; i < H; i++) { for(int j = 0; j < W; j++) { if(i % 2 == 0 && j % 2 == 0) cout << "#"; else if(i % 2 == 1 && j % 2</iostream>…

Javaで問題を解く

*追記 : プログラムが少し間違ってましたので修正しました。ついでに改良しました。 問題1.3です。 世界で闘うプログラミング力を鍛える本 ~コーディング面接189問とその解法~作者: Gayle Laakmann McDowell,岡田佑一,小林啓倫出版社/メーカー: マイナビ出…

C++で問題を解く AIZU ONLINE JUDGE

準備運動に解いたつもりが、悩ましい問題に直面して苦戦しました。もう少しレベルを落としたほうが良いかなぁ…。でもまだイントロダクションですが…。 // Print a Rectangle #include <iostream> using namespace std; int main(void) { int H,W; while(cin >> H >> W </iostream>…

Javaで問題を解く

問題1.2です。なかなか考えました。 世界で闘うプログラミング力を鍛える本 ~コーディング面接189問とその解法~作者: Gayle Laakmann McDowell,岡田佑一,小林啓倫出版社/メーカー: マイナビ出版発売日: 2017/02/27メディア: 単行本(ソフトカバー)この商品…

Javaで問題を解く

1.1の問題の続きです。1.2はまた後でやります。まずはHashtableだけを。これを使うと考えるのがかなり楽になってすっきりしました。 世界で闘うプログラミング力を鍛える本 ~コーディング面接189問とその解法~作者: Gayle Laakmann McDowell,岡田佑一,小林啓…

Javaで問題を解く

この本の1.1の問題です。今日は1問だけ解きました。データ構造のハッシュテーブルの使い方をもうちょっと研究しないと…。とりあえずハッシュテーブルなしで解きました。 世界で闘うプログラミング力を鍛える本 ~コーディング面接189問とその解法~作者: Gayle…

C言語で不定期練習 前記事の修正版

#include <stdio.h> #include <stdlib.h> int int_cmpr(const int *a, const int *b) { if(*a == *b) return 1; else if(*a > *b) return 0; else return -1; } void *binsearch(const void *key, const void *base, size_t nmemb, size_t size, int (*compar)(const void *, co</stdlib.h></stdio.h>…

C言語で不定期練習 二分探索法 バイナリサーチ

// 演習問題3-8 #include <stdio.h> #include <stdlib.h> int int_cmpr(const int *a, const int *b) { return *a == *b; } void *binsearch(const void *key, const void *base, size_t nmemb, size_t size, int (*compar)(const void *, const void *)) { int pl = 0; int pr </stdlib.h></stdio.h>…

C言語で不定期練習

// 演習問題3-6 #include <stdio.h> #include <stdlib.h> int int_cmpr(const long *a, const long *b) { if(*a < *b) return 1; else if(*a > *b) return -1; else return 0; } int main(void) { int i, nx; long ky; long *x; long *p; puts("bsearch関数による探索"); printf</stdlib.h></stdio.h>…

C言語で不定期練習

// 演習問題3-4 #include <stdio.h> #include <stdlib.h> int bin_search(const int a[], int n, int key) { int pl = 0; int pr = n - 1; int pc; int i; do { pc = (pl + pr) / 2; printf("%*s|", 3, ""); for(i = 0; i < n; i++) { if(i == pl) printf(" <- "); else if(i ==</stdlib.h></stdio.h>…

C/C++で不定期練習 AIZU ONLINE JUDGE

// Simple Calculator #include <iostream> using namespace std; int main(void) { int a,b; char op; while(cin >> a >> op >> b) { if(op == '+') cout << a + b << endl; else if(op == '-') cout << a - b << endl; else if(op == '*') cout << a * b << endl; el</iostream>…

C++で不定期練習 AIZU ONLINE JUDGE

// A/B Problem #include <iostream> using namespace std; int main(void) { int a,b; cin >> a >> b; int d = a / b; int r = a % b; double f = (double)a / b; cout << d << " " << r << " " << fixed << f << endl; return 0; } // Circle #include <iostream> #include <cmath> us</cmath></iostream></iostream>…

C++で不定期練習 AIZU ONLINE JUDGE

// print many hello world #include <iostream> using namespace std; int main(void) { for(int i = 0; i < 1000; i++) cout << "Hello World" << endl; return 0; } // print test cases #include <iostream> using namespace std; int main(void) { int x,i = 1; while(cin ></iostream></iostream>…

C言語で不定期練習

#include <stdio.h> #include <stdlib.h> int search(int a[], int n, int key) { int i,j; a[n] = key; for(i = 0;;i++) { printf("%*s|", 3, ""); for(j = 0; j <= i; j++) { printf("%*s", 3, ""); if(j > 0) putchar(' '); } printf("*\n"); printf("%3d|", i); for(j = 0; </stdlib.h></stdio.h>…

C++で不定期練習 at AIZU ONLINE JUDGE

また次回に解こうと思っていた問題文をマジマジと眺めていたら解けてしまったので、この分だけやってみました。後は本当に次回。 // Circle In A Rectangle #include <iostream> using namespace std; int main(void) { int W,H,x,y,r; cin >> W >> H >> x >> y >> r; </iostream>…

C++で不定期練習 at AIZU ONLINE JUDGE

手始めにイントロダクションからやってみてます。 // Hello World #include <iostream> using namespace std; int main(void) { cout << "Hello World" << endl; return 0; } // Cubic #include <iostream> using namespace std; int main(void) { int x; cin >> x; cout << x * </iostream></iostream>…

閏年対応のカレンダー計算(修正版)

完璧に出来ました。我ながら良い! #include <stdio.h> int days[][12] = { {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}, {31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}, }; int week(int y, int m, int d) { return (y + y / 4 - y / 100 + y / 400 + (1</stdio.h>…

C言語で問題を解く

#include <stdio.h> #define VMAX 21 typedef struct { char name[20]; int height; double vision; } PhysCheck; double ave_height(const PhysCheck dat[], int n) { int i; double sum = 0; for(i = 0; i < n; i++) sum += dat[i].height; return sum / n; } void </stdio.h>…

C++でHanafuda Shuffleを解く AIZU ONLINE JUDGE

C++でやると楽ですね。凄く短く書けました。 #include <iostream> #include <vector> #include <algorithm> using namespace std; int main(void) { vector<int> v; int n,r; int p,c; while(true) { cin >> n >> r; if(n == 0 && r == 0) break; v.clear(); for(int i = 0; i < n; i++) v.push</int></algorithm></vector></iostream>…

C言語でHanafuda Shuffleを解く AIZU ONLINE JUDGE

懐かしい問題ですね。サブミットしてみたらアクセプトされました。出来てました。C++とかJavaとかのライブラリ使ったら簡単にできるみたいですけど、なんとなくC言語でアルゴリズムを考えてみました。 #include <stdio.h> #include <string.h> int main(void) { int n,r; int p,</string.h></stdio.h>…

C言語で問題を解く

#include <stdio.h> int card_convr(unsigned x, int n, char d[]) { char dchar[] = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"; int digits = 0; int i; if(x == 0) d[digits++] = dchar[0]; else while(x) { printf("%d | %4d ··· %d\n", n, x, x % n); printf(" +--</stdio.h>…

C言語でカレンダー計算(閏年対応)

閏年に対応させても大体しかできなかったのですが、一応、1月と2月以外はできてます。 #include <stdio.h> int days[][12] = { {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}, {31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}, }; int week(int y, int m, int</stdio.h>…

C言語で問題を解く

#include <time.h> #include <stdio.h> #include <stdlib.h> int maxof(const int a[], int n) { int i; int max = a[0]; for(i = 1; i < n; i++) if(a[i] > max) max = a[i]; return max; } int main(void) { int i; int *height; int number; height = calloc(number, sizeof(int)); s</stdlib.h></stdio.h></time.h>…

C言語で問題を解く

#include <stdio.h> void spira(int n) { int i,j,k; for(i = 0; i < n; i++) { for(j = i; j < n - 1; j++) { printf(" "); } for(k = 0; k < i * 2 + 1; k++) { printf("*"); } puts(""); } } int main(void) { spira(4); spira(8); return 0; } #include <stdio.h> void nrp</stdio.h></stdio.h>…