コーディングテスト練習記録

11248 ワード

2022.01.15 24日目
白駿2864号(5と6の違い)
質問する
尚根は2863号でまじめに回って、5と6を混同した.
尚根が数字5を見ているときも、5を見ているときもあれば、6を見ているときもあれば、6を見ているときもありますが、5を見ているときもあります.
2つの数AとBがあるとき、尚根はこの2つの数を加算しようとした.この場合、ルートで求められる2つの可能な和の中、最切り上げ、最値を求めることで出力するプログラムを作成してください.
私の答え
  • 最大A、最大B、最小A、最小B
  • を求める
    import java.util.*;
    
    public class Main {
        public static void main(String[] args) {
            Scanner scanner = new Scanner(System.in);
    
            String A = scanner.next();
            String B = scanner.next();
    
            String maxA = "";
            String maxB = "";
            String minA = "";
            String minB = "";
    
            for (int i = 0; i < A.length(); i++) {
                if (A.charAt(i) == '6') {
                    maxA += "6";
                    minA += "5";
                } else if (A.charAt(i) == '5') {
                    maxA += "6";
                    minA += "5";
                } else {
                    maxA += A.charAt(i) + "";
                    minA += A.charAt(i) + "";
                }
            }
    
            for (int x = 0; x < B.length(); x++) {
                if (B.charAt(x) == '6') {
                    maxB += "6";
                    minB += "5";
                } else if (B.charAt(x) == '5') {
                    maxB += "6";
                    minB += "5";
                } else {
                    maxB += B.charAt(x) + "";
                    minB += B.charAt(x) + "";
                }
            }
    
            int max = Integer.parseInt(maxA) + Integer.parseInt(maxB);
            int min = Integer.parseInt(minA) + Integer.parseInt(minB);
    
            System.out.printf("%d %d", min, max);
    
        }
    }
    考える
  • StringでReplaceとReplaceAllを使用すると簡単に解析できます
    replace(char oldChar, char NewChar)
    replaceAll(String regex, String replacement)