-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. Weβll occasionally send you account related emails.
Already on GitHub? Sign in to your account
15-miniron-v #56
15-miniron-v #56
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
μ γ γ λ¬Έμ μ΄λ¦λ§ λ³΄κ³ μ~ μλμ μΌλ‘ μ΄μ§ ν λ¬Έμ νμ ¨λ€ νλλ°,,, 볡λ³μ΄ μμκ΅°μ
λ¬Έμμ΄ λ€λ£¨κΈ° μ’μ κ² κ°μμ νλ°κ²½μ§λνμμλ μ΄λ° λ¬Έμ λμλ κ±° κ°μλ° νμ μ λ μ«μλ₯Ό λ€λ£¨λ λ¬Έμμ΄μ 건λ€κΈ° μ΄λ ΅λλΌκ΅¬μ,,,,
int i = 0, carry = 0; | ||
std::string sum = ""; | ||
for (; i < b.size(); ++i) { | ||
int num = (a[i] - '0') + (b[i] - '0') + carry; | ||
sum.push_back(num % 10 + '0'); | ||
carry = num / 10; | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
κ°μ°κΈ°μ λ°κ°μ°κΈ°λ₯Ό μ§μ ꡬνν λλμ΄λ€μ...
input = open(0).readline
dp = [1] * 251
for i in range(2, 251):
dp[i] = dp[i - 1] + 2 * dp[i - 2]
while True:
try:
print(dp[int(input())])
except:
break νΌμ κ·Έλ₯ 2 x n νμΌλ§ λ¬Έμ λ λκ°μ΄ νΈλ νμ΄μ¬... |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
μ€λλ§μ 보λ λ―Όμ² λ PR...!
ν° μμ μ°μ°μ νκΈ° μν΄μλ μλ£νμ λ리λ κ²μ΄ μ μΌν λ°©λ²μ΄λΌκ³ μκ°νλλ° μλ£νμΌλ‘ ν΄κ²°λμ§ μλ κ²½μ°λΌλ©΄ μλ₯Ό λ¬Έμμ΄λ‘ λ°μ ν κ³μ°νλ λ°©λ²λ μλ€λ κ²μ΄ μλ‘μ λ κ±° κ°μ΅λλ€!
νμ΄μ¬μ μ κΈΈμ΄μ μν₯μ μ λ°μμ κ·Έλλ‘ μ¨λ λΌμ! C, C++ κ°μ΄ μ΅λ κΈΈμ΄κ° μ ν΄μ Έ μλ κ²½μ° λ―Όμ² λμ²λΌ stringμ μ΄μ©νλ λ°©λ²μ΄ μμ΅λλ€. κ΅³μ΄ μΆμ²λ리μ§λ μλ...λ°©λ²μ
λλ€ νν |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
κ³ μνμ ¨μ΅λλ€!
PR μ½κΈ° μμνμ λμ λ : μ€~ λλ ν μ μκ² λλ°?
μ€λ°λΆ : μ€~ λλ ν μ μκ² λλ°?
ν° μλ₯Ό λ°μμΌ ν λ stringμΌλ‘ λ°λ κ² λ«κ² λ€~ λΌλ μκ°μ νμ§λ§, λ§μ
μΌλ‘ κ°λ λ¨Έλ¦¬κ° λ§ λ±
λ±
λλ€μ.
λ¬΄μ¨ κ΅¬μ‘°μΈμ§ μ΄ν΄λ νμ§λ§, μ κ° λ°μλ€μ΄κΈ°μ μ΄λ €μ΄ λ¬Έμ κ°μ΅λλ€... νν...
π λ¬Έμ λ§ν¬
https://www.acmicpc.net/problem/1793
1793λ²: νμΌλ§
λΆλ₯: DP, ν° μ μ°μ°
βοΈ μμλ μκ°
50λΆ
β¨ μλ μ½λ
1x2 νμΌ, 2x1 νμΌ, 2x2 νμΌμ μ΄μ©ν΄ 2xN μΉΈμ μ±μΈ μ μλ κ²½μ°μ μλ₯Ό ꡬνλ λ¬Έμ .
DP μ체λ μ½κ² λ μ¬λ¦΄ μ μμλ€.
μ°μ 곡ν΅μ μΌλ‘, νμ 2μ€λ‘ κ³ μ μ΄λ―λ‘, μ΄λ ν¬κ² μ κ²½μ°μ§ μκ³ μ΄μ μ€μ¬μΌλ‘ μ§ννλ€.
1. 1κ°μ μ΄μ μ±μ°λ κ²½μ° (1x2)
μ΄λ κ°λ¨νλ€. 1x2 νμΌ ν κ°μ§ κ²½μ°μ μλ§ μ‘΄μ¬νλ€.
2. 2κ°μ μ΄μ μ±μ°λ κ²½μ° (2x2)
μ΄λ μ΄ 3κ°μ§
μ κ²½μ°κ° μ‘΄μ¬νλ€.
νμ§λ§ μ΄ μ€, 1x2 νμΌλ‘ μ±μ°λ κ²½μ°λ 1λ² κ²½μ°μ λμΌνλ―λ‘, μ¬κΈ°μ μ μΈν΄μΌ νλ€.
κ·ΈλΌ μ΄ 2κ°μ§ κ²½μ°μ μκ° μ‘΄μ¬νλ€.
π μ 리
2x17κ°μ νμΌμ μ±μ°λ λ°©λ²μ
λ‘ μ 리ν μ μλ€. (μ κ²½μ°μ μλ€μ μμ λ§ν 1μ΄, 2μ΄μ μΆκ°νλ€ μκ°ν΄λ³΄μ.)
μ΄λ₯Ό κ°λ¨ν μ½λλ‘ μμ±νλ©΄
μ΄λ κ² μ 리ν μ μλ€.
π μ΄λ κ² λλ¬μΌλ©΄ PRλ μ μΌλ€.
νμ§λ§ μ΄ λ¬Έμ μ κ°μ₯ ν° νΌμ΄ν¬λ, λ°λ‘ μ΄ λΆλΆμ΄λ€.
μ κ·Ήμ 무λν μ«μκ° λ³΄μ΄λκ°? μ 건... long longμΌλ‘λ λμ ν 컀λ²κ° μ λλ€.
μ΄ λ¬Έμ μ κ°μ₯ μ€μν λΆλΆ, λ°λ‘ ν° μμ μ°μ°μ΄λ€. π£
π° μ 건 μ΄λ»κ² νλλ°?
C++μ μμ½κ² ν° μ μ°μ°μ νλ λ°©λ²μ μλ€. κ·Έλμ μ§μ ꡬννκΈ°λ‘ μ νλ€.
κ°μ₯ λ¨Όμ , ν° μλ₯Ό λ°λ λ°©λ²μ λ¬Έμμ΄λ‘ λ°λ κ²μ΄λ€.
κ·ΈλΌ λ¬Έμμ΄λ‘ λ°μ ν, λ¬Έμμ΄ 2κ°λ₯Ό μ μ λ§μ νλ μ°μ°μ κ°λ°νλ©΄ λμ§ μμκΉ? μκ°νκ³ , μ΄μ μ°©μνλ€.
π λ¬Έμμ΄λ‘ λ§μ ν΄λ³΄μ.
μ°μ λ λ¬Έμμ΄μ μ λ ₯λ°λλ€.
std::string string_add(std::string a, std::string b) { }
μ°λ¦° μ΄μ°λλ , ν μλ¦¬μ© λΌμ μ°μ°ν΄μΌ ν κ²μ΄λ€. κ·ΈλΌ λ μ€ κΈ΄ λ¬Έμμ΄μ aλ‘ κ³ μ ν΄λλ©΄ νΈν κ²μ΄λ€.
λν, μ΄λ₯Ό μννλ μΈλ±μ€κ° νμν κ²μ΄λ€.
νμ§λ§ μ μμ μ°μ°μ 맨 λ μ리λΆν° μμνλ―λ‘, a.size() - 1μμ μμνλ i, b.size() - 1μμ μμνλ j, 2κ°κ° νμνλ€.
μ΄λ₯Ό ν΅ν©νκΈ° μν΄, aμ bλ₯Ό λ€μ§μ΄μ μμνμ.
μ΄λ¬λ©΄ i = 0λΆν° b.size()κΉμ§ λ°λ³΅λ¬Έμ λ리면 λλ, νκ²° μμν΄μ‘λ€.
μ΄μ ν μλ¦¬μ© λΌμ λν΄λ³΄μ.
ν μ리 μ«μ 2κ°λ₯Ό λνλ©΄, μ΅λ 2μ리 μκ° λμ¨λ€. νμ§λ§ sum λ°°μ΄μ μΆκ°ν μ μλ 건 κ·Έ μ€ 1μ μ리λΏ, μ¬λ¦Ό(carry)λ λ€μ μΉΈμ μ¨μΌ νλ€.
κ·Έλ¬λ char λ³μλ₯Ό intλ‘ λ³νν ν carryμ ν¨κ» λ§μ , 10μΌλ‘ λλ λλ¨Έμ§λ₯Ό λ€μ charλ‘ λ³νν΄ sumμ μΆκ°, 10μΌλ‘ λλ λͺ«μ carryμ 보κ΄νλ€.
κ·ΈλΌ λ°λ³΅λ¬Έμ΄ λλκ³ , λ¨μ carryλ μ΄λ»κ² ν΄μΌ ν κΉ?
μ΄ κ²½μ° carryλ aμ λ¨μ μλ€μ λν΄μ ΈμΌ νλ€. λ€ννλ λ°λ³΅λ¬Έμ λΉ μ Έλμ€λ©΄
i == b.size()
μ΄λ―λ‘, μ΄λ carryλ₯Ό λν μλ¦¬κ° λλ€.
κ·Έλ¦¬κ³ aμ λ¨μ λ¬Έμλ€μ sumμ κ·Έλλ‘ λν΄μ€λ€.
while (i < a.size()) { sum += a[i++]; }
μ¬κΈ°μ λ¬Έμ κ° νλ λ°μνλ€. λ λ¬Έμμ΄μ κΈΈμ΄κ° κ°λ€λ©΄ μ΄λ»κ² μ²λ¦¬ν΄μΌ ν κΉ?
λλ κΈ°μ‘΄ μ½λλ€μ μ μ§νκΈ° μν΄, λ λ¬Έμμ΄μ κΈΈμ΄κ° κ°μ λ (reverse ν) aμ λμ 0μ μΆκ°ν΄λ²λ¦¬λ λ°©μμ μ¬μ©νλ€.
κ·ΈλΌ aλ νμ bλ³΄λ€ κΈ΄ μνκ° μ μ§λλ©°, carryλ λͺ¨λ κ²½μ° aμ λΉ μ§μμ΄ λν΄μ§λ€.
μ΄ κ²½μ° μμΈλ, aμ bμ κΈΈμ΄κ° κ°κ³ , λ§μ§λ§ carryκ° 0μΈ κ²½μ°. μ΄λ sumμ 05724μ²λΌ, 맨 μ μ리μ 0μ΄ λΆμ΄ λ²λ¦°λ€.
μ΄λ sumμ λ€μ λ€μ§κΈ° μ μ, λ μλ¦¬κ° 0μ΄λ©΄ λΌλ²λ¦¬λ(pop_back) λ°©μμΌλ‘ ꡬννλ€.
κ·Έλ¦¬κ³ λ§λ€μ΄μ§ sumμ λ€μ§μ΄ μΆλ ₯νλ©΄ μ±κ³΅.
μ΄μ μ 체 μ½λλ‘ μ΄ν΄λ³΄μ.
π μ 체 μ½λ
π μλ‘κ² μκ²λ λ΄μ©
μ 체 μ¬κ³ κ³Όμ : https://autumncat.tistory.com/61
ν° μ μ°μ°μ μ²μ ν΄λ΄€λλ°, κ·Έλλ λ§μ μ λ¨μν΄μ λ€νμ΄μλ€. μ΄μ λ¬Έμ λ κ³±μ μΈλ°...
λ Όλ¦¬νλ‘ λ λ°°μ΄ λ°©μμ΄ μ λ¨Ήνμ λ€νμ΄λ€. κΈ°μ΅ μ λλ©΄ μ΄μ λΈλ¦¬ μκ°νλ©΄μ, 컴ꡬ μ§μμΌλ‘ ꡬνν΄μΌκ² λ€.
https://www.acmicpc.net/source/3116458
μ΄λ° λ°©μλ λ°κ²¬νλλ°, μ΄ν΄νκΈΈ ν¬κΈ°νλ€. μ리λ κ°λ μ΄μ§μλ₯Ό μ΄μ©νλλ°, λ λμ ν λ΄λλ΄λ λͺ¨λ₯΄κ² λ€... μ΄κ² μ΄λ»κ² λ§μ μ΄ λλ 건μ§.
https://codeforces.com/blog/entry/16380
λμ€μ μ½μ΄λ³΄λ €κ³ ν΅ν΄λ κΈ. ν° μμ μ°μ°μ λͺ¨λ ꡬνν΄ μ 리ν΄λμλ€.. (μμ§ μ λ΄)
골λ νμΌ μ±μ°κΈ°... κΉ° μ μμκΉ?