寝癖頭の解法

学習中の覚え書きを投稿、更新していきます。

paizaラーニング: C++による「戦セット」問題集

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ラーニングのレベルアップ問題集については、ユーザー同士で解答を教え合ったり、コードを公開したりするのは自由としています。
また授業や研修、教材などにも利用できるそうです。