✨ Algorithm/πŸ•‍🦺 바킹독 κ°œλ…

[0x01] 기초 μ½”λ“œ μž‘μ„± μš”λ Ή 1

nitronium102 2023. 6. 20. 03:16

κ³΅κ°„λ³΅μž‘λ„

  • 512 MB = 1.2μ–΅κ°œ int ( 1 int = 4B) ⇒ μ΄λ ‡κ²Œ ν’€μ΄λ˜λ©΄ ν‹€λ¦° 것!

μ •μˆ˜ μžλ£Œν˜•

  • char (1 byte) : 2^7 - 1(127)
  • short (2 byte) : 2^15 - 1(32767)
  • int (4 byte) : 2^31 - 1 = 2.1 * 10^9 (21μ–΅)
  • long long (8 byte) : 2^63 - 1 = 9.2 * 10^18

μ‹€μˆ˜ μžλ£Œν˜•

2의 음수 μŠΉμ„ μ΄μš©ν•΄ μ΄μ§„μˆ˜λ‘œ λ‚˜νƒ€λ‚Ό 수 있음

  • float (4byte)
  • double (8byte)
  1. μ‹€μˆ˜μ˜ μ €μž₯/μ—°μ‚° κ³Όμ •μ—μ„œ λ°˜λ“œμ‹œ μ˜€μ°¨κ°€ λ°œμƒν•  μˆ˜λ°–μ— μ—†λ‹€fraction field의 μ‚¬μ΄μ¦ˆκ°€ μœ ν•œν•˜κΈ° λ•Œλ¬Έμ— λ¬΄ν•œμ†Œμˆ˜λ₯Ό μ™„λ²½ν•˜κ²Œ ν‘œν˜„ν•  수 μ—†κ³  μžλ£Œν˜•μ— 따라 λ°˜μ˜¬λ¦Όν•΄μ•Ό 함
    • float : 유효숫자 6자리
    • double : 유효숫자 15자리
  2. 문제 : μ ˆλŒ€/μƒλŒ€ μ˜€μ°¨λŠ” 10^-6κΉŒμ§€ ν—ˆμš©ν•œλ‹€ λ“±
  3. double에 long long λ²”μœ„μ˜ μ •μˆ˜λ₯Ό ν•¨λΆ€λ‘œ 담을 수 μ—†λ‹€
    • long long은 19μžλ¦¬κΉŒμ§€μ΄κΈ° λ•Œλ¬Έ
  4. μ‹€μˆ˜λ₯Ό 비ꡐ할 λ•ŒλŠ” λ“±ν˜Έλ₯Ό μ‚¬μš©ν•˜λ©΄ μ•ˆ λœλ‹€
    • 0.1+0.1+0.1 ≠ 0.3