Day10


今日アルゴリズムの問題をするときに習ったことを記録します.
  • は、重複除外を実施する必要がある場合、ストリームを使用するよりもTreeSetを使用する.
    Setなので重複は解消できますし、TreeSetも自動ソートできます.
  • メッシュ問題を解くときは、必ずx軸y軸の位置を混同して、忘れないでください.int[y축인덱스][x축인덱스]
  • A配列の長さに従って繰り返し文を回転し、B配列が自分の要素を巡回し続ける必要がある場合は、残りの%演算子をよく利用します.私は再帰的に近づいたことがありますが、この方法はずっといいと思います.
  • ex)
    	int[] first = {1,2,3,4,5};
            int[] second = {2,1,2,3,2,4,2,5};
            int[] third = {3,3,1,1,2,2,4,4,5,5};
            int[] scores = {0,0,0};
            
    	// answer배열 길이만큼 순회하며 first, second, third 요소를 계속해서 돌며 어떤 작업을 해야 할 때,
        	// % 나머지 연산자로 인덱스를 뽑아내면 재귀를 사용할 필요가 없었던 문제.
    	for(int i = 0; i < answers.length; i++) {
                if(first[i % 5] == answers[i]){ scores[0]++;}
                if(second[i % 8] == answers[i]){ scores[1]++;}
                if(third[i % 10] == answers[i]){ scores[2]++;}
            }
    
    

    振り返る


    アルゴリズムの問題を解くときにコードを書くと、そうではないと思うことがあります.いずれにしても、勇気を出して問題を解決するのはいいが、投入した時間のように、学習効果を引き出すべきではないか.一日中私に付きまとうのではなく、適当に考えたら、もっと良いコードを探しましょう.習ったことで次の問題を解決すればいい.上級者のコードでできるだけ早く基礎を熟知します.
    また,交換可能配列<>集合のapi(https://codechacha.com/ko/java-convert-set-to-list-and-list-to-set/)を熟知し,問題の要件をよく確認しなければならない.

    リファレンス

  • https://velog.io/@suzinxix/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4-%EB%AA%A8%EC%9D%98%EA%B3%A0%EC%82%AC