プログラム設計アルゴリズムの問題.JavaScript


に質問ソウルで金相公を探す


function solution(seoul) {
    for(var i = 0; i < seoul.length; i++) {
        if(seoul[i] === "Kim") {
            var answer = "김서방은 "+i+"에 있다";
            return answer;
        }
    }
}
最初のコードは頭の中で考えているように、繰り返し文を使って実現するだけです.indexOfの存在が分からなかったので必死に繰り返しました.
function solution(seoul) {
    var answer = "김서방은 " + seoul.indexOf("Kim") + "에 있다";
    return answer;
}
2番目のコードはindexOfの存在を知って構想したコードである.最初に思いついたコードより短くて簡潔です.内蔵関数の存在をある程度理解すれば,同じ問題を解決するコードでもより簡潔明瞭に実現できる.

問題2。中間文字を入力


function solution(s) {
    var answer;
    var half = s.length/2;
    
    if (s.length % 2)    answer = s[Math.floor(half)];
    else    answer = s[half-1] + s[half];
    
    return answer;
}
function solution(s) {
    var half = s.length/2;
    return s.length % 2 ? s[Math.floor(half)] : s[half-1] + s[half];
}
この問題は最初から2つの構想があり,いずれも体現されている.場合によっては3つの演算子を用いると,コードが簡潔で可読性が強いことが一目でわかる.

に質問スイカスイカスイカ...


function solution(n) {
    var answer = '';
    for(var i = 0; i <= (n-1); i++) {
        if((i+1) % 2)   answer = answer.concat('수');
        else    answer = answer.concat('박');
    }
    return answer;
}
コードが最初に実装されると、var answer = '';は、この部分var answer;のみを宣言する.でもTypeErrorが現れたJavaScriptでは、変数の宣言時にデータ型が宣言されていないため、問題が発生する可能性があります.したがって,答えのデータ型がstringであることを明確にし,それを空変数として宣言するために,var answer = '';はこのように宣言すると解決される.問題は解決したが、正しい解決方法かどうか分からないので、正しい方法で解決してほしい.

🎁 問題のソース

  • https://programmers.co.kr/learn/courses/30/lessons/12919
  • https://programmers.co.kr/learn/courses/30/lessons/12903
  • https://programmers.co.kr/learn/courses/30/lessons/12922