2abcdd23dad63db023ed86e744817c6dc30ef86b1744af87a1b3e226dee7e9d987d5ae6c435393586da682


ํด๋ฆฌ์ปค์—์„œ ์‚ฌ์‹ค ๋‘๋‹จ์œ„ ๋„˜์–ด๊ฐ€๋ฉด ๊ฑฐ์˜ ์˜๋ฏธ์—†๋Š” ์ˆ˜๊ฐ€ ๋˜์ž–์Œ?


๊ฒ€์ƒ‰ํ•ด๋„ ํ•œ๊ตญ์–ด ์ž๋ฃŒ๋Š” ๋ณ„๋กœ ์—†๊ณ  ์˜์–ด๋กœ๋Š” ๊ฒ€์ƒ‰์„ ๋ชปํ•˜๊ฒ ์–ด์„œ ๋‚˜๋ฆ„๋Œ€๋กœ ์ƒ๊ฐํ•ด์„œ ์งœ๋ดค์Œ.




6์ž๋ฆฌ + ์ˆซ์ž ์ž๋ฆฌ์ˆ˜๋กœ ๋ฐ์ดํ„ฐ ์ €์žฅํ•˜๋Š” ๋ฐฉ์‹์ž„



ํด๋ฆฌ์ปค์—์„œ ๊ณ ๋ คํ•ด์•ผํ•  ์—ฐ์‚ฐ์€


1. ๊ฐ€์ง„ ๋ˆ์ด ๋” ๋งŽ์€๊ฐ€?


2. ์–ผ๋งˆ๋งŒํผ์˜ ๋ˆ์„ ๋”ํ•ด์ฃผ๊ฑฐ๋‚˜ ๋บ€๋‹ค.


3. ~~%๋งŒํผ ํš๋“๋Ÿ‰์„ ์ฆ๊ฐ€์‹œํ‚จ๋‹ค.


4. ํŠน์ • ๋‹จ์œ„๋งˆ๋‹ค ์†Œ์ˆ˜์ ๊ณผ ์ž๋ฆฌ์ˆ˜ ๋ถ€์—ฌ (1234๋งŒ = 1.23B)


์ด ๋„ค๊ฐ€์ง€๊ฒ ์ง€.


์ด ๋„ค๊ฐ€์ง€ ๊ฐ๊ฐ์„ ํ•จ์ˆ˜๋กœ ๊ตฌํ•ด๋ณด๊ฒ ์Œ.


3๋ฒˆ์€ ๊ทธ๋ƒฅ ๊ณฑํ•ด์ฃผ๊ณ  ์ž๋ฆฌ ๋ณ€ํ™˜ ๊ณต์‹ ๋„ฃ์œผ๋ฉด ๋˜๋‹ˆ ๊ตณ์ด ์•ˆํ•˜๊ฒ ์Œ.



๊ท€์ฐฎ์•„์„œ Vector2Int๋กœ ๊ตฌํ˜„ํ–ˆ์ง€๋งŒ ์“ธ ์‚ฌ๋žŒ์€ ์™ ๋งŒํ•ด์„  ๊ตฌ์กฐ์ฒด ๋”ฐ๋กœ ๋งŒ๋“ค์–ด์„œ ์“ฐ๊ธธ ๋ฐ”๋žŒ. ์™œ๋ƒํ•˜๋ฉด ๊ฒฐ๊ตญ ๋ชจ๋“  ์ˆซ์ž ์ €์žฅ์„ Vector2Int๋กœ ํ•˜๊ฒŒ ๋˜๋ฉด ๊ธ€์ž ์ˆ˜๊ฐ€ ๊ธธ์–ด์„œ ์ ๊ธฐ ๊ท€์ฐฎ์„ ์ˆ˜ ์žˆ์Œ.


๋จผ์ € ๋งํ•˜์ง€๋งŒ ๋ณธ์ธ์€ ์ฝ”๋”ฉ๊ด€๋ จ ์ง€์‹์ด ๋„“์€ ํŽธ์ด ์•„๋‹ˆ๋ผ ๋” ์งง๊ณ  ๊ฐ„๊ฒฐํ•œ ์ฝ”๋“œ๋ฅผ ์ ์ง„ ๋ชปํ•จ. ์ถ”๊ฐ€๋กœ ์ธ์ŠคํŽ™ํ„ฐ๋กœ๋งŒ ํ…Œ์ŠคํŠธ ํ•ด๋ด์„œ ๋ฒ„๊ทธ ์ƒ๊ธธ ์ˆ˜ ์žˆ์Œ. ๊ทธ๋ƒฅ ๋จธ๋ฆฌ์†์— ๋– ์˜ค๋ฅธ ์ด๋ก ๋Œ€๋กœ ๊ตฌํ˜„ํ–ˆ๊ธฐ์— ์˜ˆ๊ธฐ์น˜ ๋ชปํ•œ ๋ฒ„๊ทธ๊ฐ€ ์žˆ์„ ์ˆ˜๋„ ์žˆ์Œ.


์ฐธ๊ณ ๋กœ Vector2Int(6์ž๋ฆฌ, ์ž๋ฆฌ์ˆ˜)๋ผ์„œ

(100000, 1)์ด ์ˆซ์ž 1์ด๋ผ๋Š”์ .


(120000, 2)๋ฉด 12,


(999999, 12)๋ฉด 999,999,000,000 ์ด๋Ÿฐ ๋А๋‚Œ์ž„.


bool CompareNum(Vector2Int money, Vector2Int num) //1. ๊ฐ€์ง„ ๋ˆ์ด ๋” ๋งŽ์€๊ฐ€? money ํฌ๊ฑฐ๋‚˜ ๊ฐ™๋‹ค๋ฉด true, num ํฌ๋‹ค๋ฉด false. { if(money.y > num.y) { return true; } //์ž๋ฆฌ์ˆ˜ ๋น„๊ตํ•ด์„œ ํฌ๋ฉด true ์ž‘์œผ๋ฉด false ๊ฐ™์œผ๋ฉด ์ˆซ์ž ๋น„๊ต. else if (money.y < num.y) { return false; } else if (num.x > money.x) { return false; } //num์ด ๋” ํฌ๋‹ค๋ฉด false, ์ž‘๊ฑฐ๋‚˜ ๊ฐ™๋‹ค๋ฉด true. else { return true; } } void AddNum(ref Vector2Int money, Vector2Int num) //2. money์— num๋งŒํผ์˜ ๋ˆ์„ ๋”ํ•ด์ฃผ๊ฑฐ๋‚˜ ๋บ€๋‹ค. (Compare ์„ ์ œ์  ์ฒ˜๋ฆฌํ•˜๊ณ  ์—ฐ์‚ฐํ•˜๊ธธ ๋ฐ”๋žŒ.) { if(Mathf.Abs(money.y - num.y) > 5) //6์ž๋ฆฌ ์ฐจ์ด๋ถ€ํ„ด ์—ฐ์‚ฐ์˜ ์˜๋ฏธ๊ฐ€ ์—†์Œ. ๋” ํฐ ์ˆซ์ž๋กœ ์ ์šฉ. { if(money.y < num.y) { money = num; } else { return; } } else { float temp = (Mathf.Pow(10, money.y - num.y) * money.x + num.x) * Mathf.Pow(10, num.y - money.y); //money์— 10์˜ money์™€ num์ž๋ฆฌ์ˆ˜ ์ฐจ์ด ๋งŒํผ ์ œ๊ณฑํ•ด์ฃผ๊ณ  num ๊ฐ’๊ณผ ๋”ํ•œ ๋’ค, num๊ณผ money ์ž๋ฆฌ์ˆ˜ ์ฐจ์ด๋งŒํผ ๋‹ค์‹œ ์ œ๊ณฑํ•ด์„œ ๊ฐ’ ์žฌ๋ณด์ • if (temp == 0) { money = new Vector2Int(0, 0); } else { while (true) //์ˆซ์ž ์ž๋ฆฌ 6์ž๋ฆฌ๋กœ ๋ณด์ •. { if (Mathf.Abs(temp) > 999999) //ํ˜น์‹œ๋‚˜ ์‹ค์ˆ˜๋กœ ์†Œ๋ชจ๋Ÿ‰์ด ๋ˆ๋ณด๋‹ค ํฌ๊ฒŒ ๋์„ ๊ฒฝ์šฐ ๋ฒ„๊ทธ ๋ฐฉ์ง€์šฉ ์ ˆ๋Œ“๊ฐ’. { temp *= 0.1f; money.y++; } else if (Mathf.Abs(temp) < 100000) { temp *= 10f; money.y--; } else { money.x = (int)temp; break; } } } } } char[] numChar = { '0', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P' }; //๋‘์ž๋ฆฌ ์ด์ƒ์œผ๋กœ ๋„˜๊ธธ๊ฑฐ๋ฉด string์œผ๋กœ ๋ฐ”๊พธ๊ณ  ๋‚˜๋จธ์ง€๋Š” ์•Œ์•„์„œ ์ ์œผ์…ˆ. string StringNum(Vector2Int money) //์ˆซ์ž ์„ธ๊ฐœ๋กœ ์ž๋ฅด๊ณ , ์ž๋ฆฟ์ˆ˜ ๊ณ„์‚ฐํ•ด์„œ ์†Œ์ˆซ์ ๊ณผ ๋‹จ์œ„๋ฅผ ๋”ํ•ด์คŒ. { if(money.x == 0) { return "0"; } string result = money.x.ToString().Substring(0, 3); //3๊ธ€์ž ์ž๋ฅด๊ธฐ if (money.y % 3 != 0) { result = result.Insert(money.y % 3, "."); } result += numChar[(money.y - 1)/ 3]; return result; }

๋‚ด ๊ฒŒ์ž„์—๋„ ๋„ฃ์–ด๋ณผ ์ƒ๊ฐ