DEV_Larva

๋ณ€์ˆ˜์™€ ์ƒ์ˆ˜(2) ๋ณธ๋ฌธ

iOS/Swift ๋ฌธ๋ฒ•

๋ณ€์ˆ˜์™€ ์ƒ์ˆ˜(2)

NelchuPapa 2022. 7. 1. 22:07
๋ฐ˜์‘ํ˜•

๐Ÿง‘‍๐Ÿ’ป ์ง€๋‚œ ์‹œ๊ฐ„์— ์ด์–ด ์ •์ˆ˜์™€ ์†Œ์ˆ˜๋ฅผ  ์ €์žฅํ•˜๊ณ  ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด์ž!

 


 

3.  ์ •์ˆ˜๋ฅผ ์ €์žฅํ•˜๊ณ  ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•

 

์ƒˆ๋กœ์šด ์ •์ˆ˜๋ฅผ ๋งŒ๋“œ๋Š”๊ฒƒ์€ ์•ž์„œ ๋ฐฐ์šด ๋ฌธ์ž์—ด์„ ๋งŒ๋“œ๋Š” ๊ฒƒ๊ณผ ๋™์ผํ•˜๋‹ค. ๋ฌธ์ž์—ด์„ ๋ณ€์ˆ˜์— ํ• ๋‹นํ•˜๋“ฏ์ด ์ด๋ฏธ ์•ž์—์„œ ๋งŽ์ด ์–ธ๊ธ‰ํ•˜์˜€๊ธฐ ๋•Œ๋ฌธ์— ๋„˜์–ด๊ฐ€๊ณ  ์ •์ˆ˜์—์„œ ํŠน๋ณ„ํ•œ ๊ฒฝ์šฐ๋Š” ์ž‘์€ ์ˆซ์ž๊ฐ€ ์•„๋‹Œ ํฐ ์ˆ˜์ผ ๊ฒฝ์šฐ์—๋Š” ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํ• ์ง€๋ฅผ ๋ฐฐ์›Œ ๋ณด์ž.

 

๋ณ€์ˆ˜ score๋Š” ๋น„๊ต์  ์ฝ๊ธฐ ์‰ฝ์ง€๋งŒ reallyBigNum์— ํ• ๋‹น๋˜์–ด์žˆ๋Š” 100000000์ด๋‚˜ ์ด๋ณด๋‹ค ํฐ ์ˆ˜์˜ ๊ฒฝ์šฐ ์‚ฌ๋žŒ์€ ์ฝ๊ธฐ ๋งค์šฐ ํž˜๋“ค์–ด์ง„๋‹ค. ํ•˜์ง€๋งŒ  reallyBigNum_1์— ํ• ๋‹น๋œ 100_000_000์€ reallyBigNum๋ณด๋‹จ ์ฝ๊ธฐ ํŽธํ•˜๊ฒŒ ํ‘œํ˜„ํ•˜๋”๋ผ๋„ ๊ฒฐ๊ณผ๋Š” ๋˜‘๊ฐ™์ด ๋‚˜์˜ค๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋งค์šฐ ํฐ ์ˆ˜๋Š” ์ž˜ ์‚ฌ์šฉํ•˜์ง€๋Š” ์•Š์ง€๋งŒ ๋งŒ์•ฝ ์‚ฌ์šฉํ•˜๊ฒŒ ๋œ๋‹ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด _ ๋ฅผ ์ด์šฉํ•ด์„œ ์ˆ˜๋ฅผ ํ‘œํ˜„ํ•ด๋ณด์ž! ๐Ÿ‘

 



-  ์ •์ˆ˜๋ฅผ ์ด์šฉํ•œ ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ 

 

(1) ์‚ฐ์ˆ  ์—ฐ์‚ฐ์ž

 

๋‹ค์–‘ํ•œ ์–ธ์–ด์—์„œ ๋ณผ ์ˆ˜ ์žˆ๋Š” ํŠน์ˆ˜ ์—ฐ์‚ฐ์€ Swift์—๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด counter = counter + 5 ๋ฅผ ์“ฐ๋Š” ๋Œ€์‹  ํ•ด๋‹น ์ •์ˆ˜์— ์ง์ ‘ ์ˆซ์ž๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ์†๊ธฐ ์—ฐ์‚ฐ์ž์ธ += ๋ฅผ ์‚ฌ์šฉํ•ด๋ณผ ์ˆ˜ ์žˆ๋‹ค. 

 

 

 

 

(2) isMultiple(of:)

 

isMultiple(of:)์€ ์ •์ˆ˜๋ฅผ ํ˜ธ์ถœ ํ•˜์—ฌ ์ œ์‹œํ•œ ์ •์ˆ˜์˜ ๋ฐฐ์ˆ˜์ธ์ง€์— ๋Œ€ํ•œ ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. 

๋ฐ”๋กœ ์˜ˆ์‹œ๋ฅผ ํ™•์ธ ํ•ด๋ณด์ž!

 

120์ด 3์˜ ๋ฐฐ์ˆ˜์ธ์ง€ ํ™•์ธ ํ•ด๋ณด์•˜๋‹ค. ๊ฒฐ๊ณผ๊ฐ’์€ ๋ฌผ๋ก  True์ด๋‹ค.

 


 

4.  ์†Œ์ˆ˜๋ฅผ ์ €์žฅํ•˜๊ณ  ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ• 

 

์šฐ๋ฆฌ๋Š” ์ •์ˆ˜๊ฐ€ ์•„๋‹Œ 3.1, 5.56, 3.14 56๊ณผ ๊ฐ™์ด ์†Œ์ˆ˜์ ์„ ์ž‘์—…ํ•ด์•ผ ํ•  ๋•Œ๋„ ๋งŽ๋‹ค.  Swift๋Š” ๋ถ€๋™์†Œ์ˆ˜์ ์œผ๋กœ ์ž‘์—…ํ•˜๊ฒŒ ๋˜๋Š”๋ฐ ์ด๋ฅผ ์ด์šฉํ•ด์„œ ์—ฐ์‚ฐ ์ž‘์—…์ธ 0.1๊ณผ 0.2๋ฅผ ๋”ํ•ด๋ณด์ž.

์™œ 0.3000000000000004๊ฐ€ ๋‚˜์˜ค์ง€??

0.1 + 0.2๋Š” ๋‹น์—ฐํžˆ 0.3์ด์ง€๋งŒ ์ด๋ฅผ ์ถœ๋ ฅํ•ด๋ณด๋ฉด 0.30000000000000004๋ฅผ ์ถœ๋ ฅํ•˜๊ฒŒ ๋œ๋‹ค. ์™œ ์ด๋ ‡๊ฒŒ ์ถœ๋ ฅ๋˜๋Š”์ง€๋Š” ๋ถ€๋™์†Œ์ˆ˜์ ์—์„œ ์ค‘์š”ํ•œ ์ ์ธ Double์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๊ณ  ์ดํ›„์— ์ž์„ธํ•˜๊ฒŒ ๋‹ค๋ฃจ๋„๋ก ํ•ด๋ณด์ž.

 

Double์€ ์ด๋ฏธ ๋‹ค์–‘ํ•œ ์–ธ์–ด์—์„œ ๋งŽ์ด๋“ค ๋ณด์•˜์„ ๊ฒƒ์ด๋‹ค. Double์€ Swift์˜ ๊ธฐ๋ณธ  ๋ฐ์ดํ„ฐ ํƒ€์ž…์œผ๋กœ ์ง€๊ธˆ๊นŒ์ง€ ๋‹ค๋ฃจ์—ˆ๋˜ ์ •์ˆ˜ํ˜•์ธ Intํ˜• ๊ณผ๋Š” ๋‹ฌ๋ฆฌ 64๋น„ํŠธ ์‹ค์ˆ˜ํ˜•์œผ๋กœ ๋ถ€๋™ ์†Œ์ˆ˜์ ์„ ์ƒ์„ฑํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค. 

 

์ด๋ฒˆ์—๋Š” Doubleํ˜•์„ Intํ˜•๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜๋ฉด ์–ด๋–ป๊ฒŒ ๋˜๋Š”์ง€ ์•Œ์•„๋ณด์ž.

Intํ˜•๊ณผ Doubleํ˜•์„ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜์—ฌ ์—ฐ์‚ฐ์„ ํ• ๋ ค๊ณ  ํ•˜๋ฉด ์˜ค๋ฅ˜๊ฐ€ ๋‚˜๋Š”๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

์™œ ์ด๋Ÿด๊นŒ?๐Ÿค”

์ด์œ ๋Š” ๊ฐ„๋‹จํ•˜๋‹ค. a์—๋Š” ์ •์ˆ˜ ๊ฐ’์ด ํ• ๋‹น๋˜์–ด์žˆ๊ณ  b์—๋Š” ์‹ค์ˆ˜ ๊ฐ’์ด ํ• ๋‹น๋˜์–ด์žˆ๋Š” ์žˆ๋Š”๋ฐ ์ด ๋‘˜์„ ๋”ํ•˜๋ ค๊ณ  ํ•˜๋‹ˆ ์˜ค๋ฅ˜๊ฐ€ ๋‚œ ๊ฒƒ์ด๋‹ค. 

์˜ค๋ฅ˜ ๋ฌธ์—์„œ๋„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋“ฏ์ด ๋‹ค๋ฅธ ์œ ํ˜•์˜ ๋ฐ์ดํ„ฐ๋ฅผ ํ˜ผํ•ฉํ•˜๋Š” ๊ฒƒ์€ ํ—ˆ์šฉ๋˜์ง€ ์•Š๋Š”๋‹ค. 

 

๊ทธ๋Ÿผ ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํ• ๊นŒ??

 

ํ•ด๊ฒฐ๋ฒ•

 

(1) let c = a + Int(b)

Swift์—๊ฒŒ Doubleํ˜•์ธ b๋ฅผ int๋กœ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•œ๋‹ค๊ณ  ๋ช…์‹œ์ ์œผ๋กœ ์„ ์–ธ์„ ํ•ด์ฃผ๋ฉด ๋œ๋‹ค.

 

(2) let c = Double(a) + b  

๋ฐ˜๋Œ€๋กœ intํ˜•์ด์—ˆ๋˜ a๋ฅผ Doubleํ˜•์œผ๋กœ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•œ๋‹ค๊ณ  ์„ ์–ธํ•ด์ฃผ๋ฉด ๋œ๋‹ค.

 

 

(1), (2)์—์„œ ๋ณผ ์ˆ˜ ์žˆ๋“ฏ์ด ๋ฏธ๋ฆฌ ๋ฐ์ดํ„ฐ ํƒ€์ž…์„ ์ž„์‹œ์ ์œผ๋กœ ๋ณ€๊ฒฝํ•ด์ฃผ๋Š” ๊ฒƒ์ด๋‹ค. 

 

 

 


DAY 1์—์„œ๋Š” Swift์—์„œ ๊ธฐ๋ณธ์ ์ธ ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•˜๋Š” ๋ฐฉ๋ฒ•์ธ var๊ณผ let์„ ๋ฐฐ์›Œ๋ณด์•˜๋‹ค.

๊ทธ๋ฆฌ๊ณ  ํ•ด๋‹น ๋ณ€์ˆ˜์— ๋ฌธ์ž์—ด๊ณผ ์ •์ˆ˜, ์†Œ์ˆ˜์ ์„ ํ• ๋‹นํ•˜์—ฌ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ• ๊ทธ๋ฅผ ์ด์šฉํ•œ ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ์— ๋Œ€ํ•ด์„œ๋„ ๋ฐฐ์›Œ๋ณด์•˜๋‹ค.

๋‹ค์–‘ํ•œ ์–ธ์–ด๋ฅผ ๊ณต๋ถ€ํ•ด๋ณด๋ฉด์„œ ๋งŽ์ด ์ต์ˆ™ํ•˜์—ฌ ๊ฐ€๋ณ๊ฒŒ ์ง€๋‚˜๊ฐˆ ์ˆ˜๋„ ์žˆ์ง€๋งŒ refresh ํ•ด๋ณด๋Š” ์ข‹์€ ๊ณต๋ถ€ ์‹œ๊ฐ„์ด์—ˆ๋‹ค!!

 

DAY 2์—์„œ ๋งŒ๋‚˜์š”~!๐Ÿ‘‹

learning by repetition

๋ฐ˜์‘ํ˜•

'iOS > Swift ๋ฌธ๋ฒ•' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

๋ฐฐ์—ด(2)  (0) 2022.07.11
๋ฐฐ์—ด  (0) 2022.07.06
Bool & ๋ฌธ์ž์—ด ๋ณด๊ฐ„๋ฒ•  (0) 2022.07.05
๋ณ€์ˆ˜์™€ ์ƒ์ˆ˜  (0) 2022.06.30
HACKING WITH SWIFT - 0  (0) 2022.06.20