07.30 pre-edu


基本アルゴリズムPart 1


1.2つの整数の合計


2つの整数a、bが与えられたとき、aとbの間のすべての整数の和に属する関数.
2つの整数の大きさの関係が不定であるため,分句で解決した.
class Solution {
    public long solution(int a, int b) {
        long answer = 0;
        if(a < b){
            for(int i = a; i <= b; i++){
                answer += i;
            }
        }else {
            for(int i = b; i <= a; i++){
                answer += i;
            }
        }
        return answer;
    }
}

2.スイカスイカスイカスイカスイカ水?


長さはn「スイカの数…」関数を完了し、同じモードを維持する文字列を返します.例えば、nが4であれば、「スイカスイカ」3、「スイカ水」
class Solution {
    public String solution(int n) {
        String answer = "";
        for(int i = 1; i <= n; i++){
            if (i % 2 == 0){
                answer += "박";
            } else {
                answer += "수";
            }
        }
        return answer;
    }
}

3.ソウルで金相公を探す


Sterng型に配列されたseoulの要素に「Kim」の位置xが見つかり、「Kim Westernがxにある」を返すStringの関数seoulに「Kim」が一度しか現れません.
equalsの方法が覚えられないので、少し暗くなりました.
class Solution {
    public String solution(String[] seoul) {
        String answer = "";
        for(int i = 0; i < seoul.length; i++){
            if(seoul[i].equals("Kim")){
                answer = String.format("김서방은 %d에 있다",i);
            }
        }
        return answer;
    }
}

4.薬液の配合


整数nにnを加えたすべての整数の値を返す関数です.
class Solution {
    public int solution(int n) {
        int answer = 0;
        for(int i = 1; i <= n; i++){
            if (n % i == 0){
                answer += i;
            }
        }
        return answer;
    }
}

5.文字列中のpとyの個数


大文字と小文字を混合する文字列sが与えられます.sでは、「p」の個数と「y」の個数を比較し、falseとは異なる同じtrueの関数を完了します.p""y"がいない場合はtrueを返しますが、個数を比較する場合は大文字と小文字は区別されません.
文字列をChar型配列に変更し、for文を回してif文で答えを返す
もっと効果的な方法があるのではないでしょうか.
class Solution {
    boolean solution(String s) {
        boolean answer = true;
        char[] ss = s.toCharArray();
        int p = 0;
        int y = 0;
        for (int i = 0; i < ss.length; i++){
            if (ss[i] == 'p' || ss[i] == 'P'){
                p++;
            } else if (ss[i] == 'y' || ss[i] == 'Y'){
                y++;
            }
        }
        if (p == y){
            answer = true;
        } else if (p > y){
            answer = false;
        } else if (p < y){
            answer = false;
        }
        return answer;
    }
}

6.私は同じ数字が好きではありません


アレイarrによって与えられるアレイarrの各要素は0〜9からなる.
このとき,配列arrに連続して現れる数字は1つしか残っておらず,すべて削除しようとした.
ただし、除去後の残り数を返す場合は、アレイarr内の要素の順序を維持する必要があります.
なるべくArrayListは書かずArrayのみを書いてfor ifで解決しますが答えがないのでArrayListを書きました
import java.util.*;
public class Solution {
    public int[] solution(int []arr) {
        int[] answer = {};
        ArrayList<Integer> arrlist = new ArrayList<>();
        int num = 10;
        for (int i = 0; i < arr.length; i++){
            if(arr[i] != num){
                arrlist.add(arr[i]);
                num = arr[i];
            }
        }
        answer = new int[arrlist.size()];
        for (int i = 0; i < answer.length; i++){
            answer[i] = arrlist.get(i);
        }
        return answer;
    }
}

7.中間文字を入力


単語sの中間文字を返す関数を作成しましょう.単語の長さが偶数の場合、中間の2文字が返されます.
class Solution {
    public String solution(String s) {
        String answer = "";
        char[] dummy = s.toCharArray();
        int half = dummy.length / 2;
        if (dummy.length % 2 == 0){
            answer = String.format("%c%c", dummy[half-1], dummy[half]);
        } else {
            answer = String.format("%c",dummy[half]);
        }
        return answer;
    }
}

8、間隔xのn個の数字


整数xと自然数nを入力し、xからn個の数字xのリストを返します.次の制限条件を見て、条件を満たす関数を完成します.
せいげんじょうけん
xは、−1000000または1000000以下の整数である.
nは1000未満の自然数である.
class Solution {
    public long[] solution(int x, int n) {
        long[] answer = {};
        answer = new long[n];
        long temp = x;
        for (int i = 0; i < n; i++){
            answer[i] = temp;
            temp += x;
        } 
        return answer;
    }
}