paizaラーニングのレベルアップ問題集「戦セット」からの出典です。
paiza.jp
C++による「戦セット」問題集と、それらの提出コードの解答例です。
僕が作成、提出したコードは、以下のとおりです。
・【競技1】合格判定
/* C++による「戦セット」問題集 【競技1】合格判定 https://paiza.jp/works/mondai 提出コードの解答例 https://neguse-atama.hatenablog.com */ #include<stdio.h> int main(void){ int n; scanf("%d",&n); if(n>=80){ printf("pass\n"); }else{ printf("fail\n"); } return 0; }
・【競技2】間違い探し
/* C++による「戦セット」問題集 【競技2】間違い探し https://paiza.jp/works/mondai 提出コードの解答例 https://neguse-atama.hatenablog.com */ #include<iostream> using namespace std; int main(void){ string s1,s2; cin>>s1>>s2; if(s1==s2){ printf("YES\n"); }else{ printf("NO\n"); } return 0; }
・【競技3】深夜時間の表記
/* C++による「戦セット」問題集 【競技3】深夜時間の表記 https://paiza.jp/works/mondai 提出コードの解答例 https://neguse-atama.hatenablog.com */ #include<stdio.h> int main(void){ int n; scanf("%d",&n); printf("%d\n",n-24); return 0; }
・【競技4】明日天気にな〜れ!
/* C++による「戦セット」問題集 【競技4】明日天気にな〜れ! https://paiza.jp/works/mondai 提出コードの解答例 https://neguse-atama.hatenablog.com */ #include<iostream> #include<cstdio> using namespace std; int main(void){ int n; string d; cin>>n; for(int loop=0;loop<n;loop++){ cin>>d; if(d=="forward"){ printf("Sunny\n"); }else if(d=="reverse"){ printf("Rainy\n"); }else if(d=="sideways"){ printf("Cloudy\n"); } } return 0; }
・【競技5】ゆで卵
/* C++による「戦セット」問題集 【競技5】ゆで卵 https://paiza.jp/works/mondai 提出コードの解答例 https://neguse-atama.hatenablog.com */ #include<stdio.h> int main(void){ int m; scanf("%d",&m); if(m>=0 && m<=5){ printf("raw\n"); }else if(m>=6 && m<=7){ printf("soft boiled\n"); }else if(m>=8 && m<=15){ printf("hard boiled\n"); } return 0; }
・【競技6】匿名希望さん
/* C++による「戦セット」問題集 【競技6】匿名希望さん https://paiza.jp/works/mondai 提出コードの解答例 https://neguse-atama.hatenablog.com */ #include<stdio.h> int main(void){ char s1[101],s2[101]; scanf("%s %s",s1,s2); printf("%c.%c.",s1[0],s2[0]); return 0; }
・【競技7】奇数大好き山田さん
/* C++による「戦セット」問題集 【競技7】奇数大好き山田さん https://paiza.jp/works/mondai 提出コードの解答例 https://neguse-atama.hatenablog.com */ #include<iostream> #include<vector> #include<algorithm> using namespace std; int main(void){ int n,a; cin>>n; vector<int> odd; for(int i=0;i<n;i++){ cin>>a; if(a%2!=0){ odd.push_back(a); } } sort(odd.begin(),odd.end()); for(int i=0;i<odd.size();i++){ printf("%d\n",odd[i]); } return 0; }
・【競技8】お一人様一点限り
/* C++による「戦セット」問題集 【競技8】お一人様一点限り https://paiza.jp/works/mondai 提出コードの解答例 https://neguse-atama.hatenablog.com */ #include<bits/stdc++.h> using namespace std; int main(void){ int n; cin>>n; vector<string> c(n); for(int i=0;i<n;i++){ cin>>c[i]; } bool tf=true; cout<<"YES"<<endl; for(int i=1;i<n;i++){ tf=true; for(int j=i-1;j>=0;j--){ if(c[i]==c[j]){ tf=false; break; } } if(tf==false){ cout<<"NO"<<endl; }else{ cout<<"YES"<<endl; } } return 0; }
・【挑戦9】線対称と点対称
/* C++による「戦セット」問題集 【挑戦9】線対称と点対称 https://paiza.jp/works/mondai 提出コードの解答例 https://neguse-atama.hatenablog.com */ #include<bits/stdc++.h> using namespace std; int main(void){ int n,m; cin>>n>>m; char d[n][m]; for(int i=0;i<n;i++){ for(int j=0;j<m;j++){ cin>>d[i][j]; } } char p[n][m],l[n][m],l2[n][m]; for(int i=0;i<n;i++){ for(int j=0;j<m;j++){ l[i][j]=d[i][j]; } } using std::swap; for(int i=0;i<n;i++){ for(int j=0;j<m/2;j++){ swap(l[i][j],l[i][m-j-1]); } } for(int i=0;i<n;i++){ for(int j=0;j<m;j++){ l2[i][j]=d[i][j]; } } using std::swap; for(int i=0;i<n/2;i++){ for(int j=0;j<m;j++){ swap(l2[i][j],l2[n-i-1][j]); } } for(int i=0;i<n;i++){ for(int j=0;j<m;j++){ p[i][j]=d[n-1-i][m-1-j]; } } bool tfl=true,tfp=true; for(int i=0;i<n;i++){ for(int j=0;j<m;j++){ if(d[i][j]!=l[i][j] && d[i][j]!=l2[i][j]){ tfl=false; } if(d[i][j]!=p[i][j]){ tfp=false; } } } if(tfl==true && tfp==true){ cout<<"line point symmetry"<<endl; }else if(tfl==true){ cout<<"line symmetry"<<endl; }else if(tfp==true){ cout<<"point symmetry"<<endl; }else{ cout<<"none"<<endl; } return 0; }
paizaラーニングのレベルアップ問題集については、ユーザー同士で解答を教え合ったり、コードを公開したりするのは自由としています。
また授業や研修、教材などにも利用できるそうです。