λ€λ₯Έ μ¬λμ΄ λ΄€μλ μ¬μΈμλ‘, κ°κ²°ν μλ‘ μ’μ μ½λλΌκ³ νλλ° μ΄κ² κ°κ²°νκ² μ§λ€λ³΄λ©΄ μνμ μ§μμ΄ μμμ¬λμκ²λ μ΄λ €μ΄μ½λκ° λλ²λ¦¬κ³ μ‘°κΈ νμ΄μμ°λ©΄ κΈΈμ΄κ° μ μ κΈΈμ΄μ§.. μ΄λμ λ μ μ κ°κ²°νκ³ μ¬μ΄ μ’μ μ½λλΌκ³ ν μ μμκΉ?
1λ²
if (a > b) a ^= b ^= a ^= b; answer = (long long)b * -~b / 2 - (long long)a * ~-a / 2; return answer;2λ²
int a = A < B ? A : B; int b = A < B ? B : A; for (int i = a; i <= b; i++) answer += i; return answer; }3λ²
int i,j,temp; i=a; j=b; if(i>j) { temp = i; i=j; j=temp; } for(i; i<=j; i++) { answer = answer+i; } return answer; }μ΄λ κ² 3κ°μ μ½λκ° μλλ° κ³΅μ°¨κ° 1μΈ λ±μ°¨μμ΄μ ꡬνλ μ½λμΌ.Β
1λ²μ΄ μ§§κ³ 2κ°μ λ³μλ§ μ¬μ©νλλ° μ§μμ΄ μμΌλ©΄ μ΄ν΄λ₯Ό λͺ»ν¨.
2λ²μ μ§§κ³ μ΄ν΄νκΈ° νΈνλ° λ³μλ₯Ό 4κ°λμ.
3λ²μ 2κ°μ λ³μλ₯Ό 2κ°μ λ³μμ λ€μλμ νκ³ 1κ°μ tempλ³μλ₯Ό μ¬μ©ν¨.
3λ²μ λκ°λ΄λ μ’μ μ½λλ μλλ° 1,2λ²λ΄€μλ μ½κΈ°νΈν 2λ²μ΄ μ’μμ½λμΈμ§ κ°κ²°νκ³ λ³μλμ°λ 1λ²μ΄ μ’μμ½λμΈμ§ λͺ¨λ₯΄κ² μ.
λ΄ μκ°μ λ² μ€νΈλ μ΅μ μ μ±λ₯μ κ°μ§ μ½λλ₯Ό μ§κ³ μΊ‘μνν΄μ λλ£λ€μκ² κ³΅κ°νλκ±°μ. κ·ΈλΌ λλ£λ€μ μΈνμ λ°λ₯Έ κ²°κ³Όλ¬Όλ§ μ΄ν΄νλ©΄λκ³ , λ΄μ©λ¬Όμ κ³ λ €ν νμλ μμ§. μ°λ¦¬λ κ³΅κ° λΌμ΄λΈλ¬λ¦¬ μΈ λ λ΄λΆ ꡬνμ μ΄ν΄νμ§ μκ³ μ¬μ©νμμ. κ·Έλ°μ½λλ₯Ό λ§λ€λ©΄ λλ€ μκ°ν¨ λͺ¨λκ° μ΄ν΄ κ°λ₯ν μ½λλ건 μλκ±° κ°μ. λμ λͺ¨λκ° μΈ μ μλ μ½λλ₯Ό λ§λ€λ €κ³ λ Έλ ₯νμꡬ γ γ
ν μμ₯
3λ²μ i, j μ μ°κ³ λ°λ‘ a, b μ°λ©΄ λ κ² κ°μλ°
reduce(sum, range(min(a, b), max(a, b))
μΆμν νμ
μ λ΅μ΄ μλ건 μλμ§λ§, λ κ°μΌλ©΄ μ΄λ°κ±΄ κ·Έλ₯ ν΄λμ€ λ©μλλ μμ νμ μΌλ‘ λΉΌλ²λ¦¬κ³ νμ λ€μ΄λ°μ getArithmeticSeq λ°μλ‘ μ§μ. νΉμ μμ μ λ¨λ°λ‘λ§ μ¬μ©λλ€λ©΄ μλ¨μ //λ±μ°¨μμ΄ μ΄λΌκ³ μ£Όμ.
μμ μΌ λΏμ΄μ§λ§ 3λ²μ λΌμΈμκ° λ§μμ μμΈκ±°κ³ 1λ²μΌλ‘ μκ°λ°νλ€κ° νΉμ λΌμΈμ΄ μ’ κΈΈμ΄μ§λ©΄ νμ΄μ.
λ³μ λͺκ°κ°μ μ§μ½μ μΈ κ²μ ꡬμ λ°μ§ λ§κ³ 2λ² λ°©μ
λ΄ μ·¨ν₯μ 2λ²μμ λ³μ μ΄λ¦μ μ’ λ μλ―Έλ₯Ό νμ νκΈ° μ½κ² μ νλ κ±°μ. for μμμ μ€λ³΅λλ μμ μ΄λ new μμ λΉΌκ³ λ μ±λ₯보λ€λ μ½κΈ° μ¬μ΄ μ½λκ° μ μ 건κ°μ μ’μκ±° κ°μ.
κ·Έλ¦¬κ³ κ³ μλΆ μ½λ 보λκΉ μ§μ§ μ±λ₯ νμν λΆλΆμ μ΄μ μΌλ‘ μ¨λκ³ μ£Όμμ λ¬μ λλλΌκ³
μ΄ν΄νκΈ° μ¬μ΄κ² μ΅κ³ λΌλ λ§μ μ΄λμ λ€μλλ° κ·Έλ λ€λ©΄ λ 2λ²μ΄λΌκ³ μκ°ν¨
for μ μ€κ΄νΈλ₯Ό μ³λΌ... κΌ... κ·Έλ¦¬κ³ μ£Όμμ μ¨λΌ