๋ฌ์์์๋ ์ ํต๊ณผ ๊ฐ์ ๊ฒ์ด ์์ต๋๋ค. ํ์ด์ ํฐ์ผ์ ์ฐพ๋ ๊ฒ์ ์ข์ํฉ๋๋ค.
์ผ๋ฐ ํญ๊ณต๊ถ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
๋ณด์๋ค์ํผ ํฐ์ผ์๋ 6 ์๋ฆฌ ์ซ์๊ฐ ์์ต๋๋ค.
์ฒ์ ์ธ ์๋ฆฌ์ ํฉ์ด ๋ง์ง๋ง ์ธ ์๋ฆฌ์ ํฉ๊ณผ ๊ฐ์ ๊ฒฝ์ฐ 6 ์๋ฆฌ ์ซ์๋ ์ด์ด ์ข์ ๊ฒ์ผ๋ก ๊ฐ์ฃผ๋ฉ๋๋ค .
์ฌ์ง์ ์ซ์๋ ์ด์ด ์ข์ง ์์ต๋๋ค.
038937
038 937
0 + 3 + 8 = 11
9 + 3 + 7 = 19
11 != 19
๋์
๋ฒ์ ์ ํ์ ํฌํจํ์ฌ (๋ฒ์ ํฌํจ) ๊ทธ ์์ ํฌํจ ๋ ํ์ด์ ํฐ์ผ ๋ฒํธ ์๋ฅผ ๋ฐํํฉ๋๋ค.
๋งค๊ฐ ๋ณ์
- ์ ๋ ฅ : 2 ๊ฐ์ ์ ์ : ๋ฒ์์ ์ฒซ ๋ฒ์งธ ์ ์์ ๋ง์ง๋ง ์ ์
- ์ ๋ ฅ ๊ฐ์ 0์์ 999999 ์ฌ์ด์ ๋๋ค.
- ์ถ๋ ฅ : 1 ์ ์ : ๋ฒ์์์๋ ํ์ด์ ์ซ์ ์
- ์ ๋ ฅ์ ๋ฐ์ ํ์ฉ๋๋ ํ์์ผ๋ก ์ถ๋ ฅ์ ๋ฐํ ํ ์ ์์ต๋๋ค
- 100000๋ณด๋ค ์์ ์ซ์์ ์์ 0์ ๊ฐ์ ํ์ญ์์ค.
์
0, 1 => 1
100000, 200000 => 5280
123456, 654321 => 31607
0, 999999 => 55252
์ด๊ฒ์ ์ฝ๋ ๊ณจํ ์ด๋ฏ๋ก ๋ชจ๋ ์ธ์ด์์ ๊ฐ์ฅ ์งง์ ๋ฐ์ดํธ ๋จ์์ ๋๋ต์ด ์ด๊น๋๋ค.
๋ต๋ณ
05AB1E , 8 (๋๋ 10?) 11 (๋๋ 13?) ๋ฐ์ดํธ
ลธสโn+ยฆS3รดOร
์จ๋ผ์ธ์ผ๋ก ์๋ ํ๊ฑฐ๋ ๋ ๋ง์ ํ ์คํธ ์ฌ๋ก๋ฅผ ํ์ธ ํ์ญ์์ค .
์ฐธ๊ณ : 05AB1E์์ ๋ฌธ์์ด๊ณผ ์ ์๋ ์๋ก ๋ฐ๊ฟ์ ์ฌ์ฉํ ์ ์์ผ๋ฏ๋ก ์ถ๋ ฅ ์ซ์์ ์ ํ 0์ด ํฌํจ๋์ง ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ด๊ฒ์ 1 ์ถ๊ฐ ๋ฐ์ดํธ ( 12 ๋ฐ์ดํธ) ๋ก ๊ณ ์ ๋ ์ ์์ต๋๋ค ) .
ลธโn+โฌยฆสS3รดOร
์จ๋ผ์ธ์ผ๋ก ์ฌ์ฉํด๋ณด์ญ์์ค ํ๊ฑฐ๋ ๋ ๋ง์ ํ ์คํธ ์ฌ๋ก๋ฅผ ํ์ธ .
๊ธธ์ด๊ฐ 3 ์ดํ์ธ ๋ฒ๊ทธ ์์ ๋ฒํธ์ +3 ๋ฐ์ดํธ (๋ฒ์) [000000, 000999]
).
์ค๋ช :
ลธ # Create an inclusive (on both sides) range from the two inputs
# i.e. 038920 and 038910 โ
# [38910,38911,38912,38913,38914,38915,38916,38917,38918,38919,38920]
ส # Filter this list by:
โn+ # Add 1,000,000 to the number
| # And remove the leading 1
# i.e. 38910 โ 1038910 โ '038910'
S # Transform it to a list of digits
# i.e. '038910' โ ['0','3','8','9','1','0']
3รด # Split it into chunks of length 3
# i.e. ['0','3','8','9','1','0'] โ [['0','3','8'],['9','1','0']]
O # Sum the digits in both parts
# i.e. [['0','3','8'],['9','1','0']] โ [11,10]
ร # Check if they are equal (if they are, they remain in the filtered list)
# i.e. [11,10] โ 0
ํธ์ง : ๋ (๊ทธ๋ฆฌ๊ณ ๋๋ถ๋ถ์ ๋ค๋ฅธ ๋ต๋ณ)๊ฐ ๋์ ์ ์ฝ๊ฐ ์๋ชป ์ฝ์ ๊ฒ์ผ๋ก ๋ณด์ด๋ฉฐ ๋ฒ์ ๋ด์ ์ซ์ ์์ฒด ๋์ ์ซ์์ ์์ ๋ฌป๋ ๊ฒ์
๋๋ค. ์ด ๊ฒฝ์ฐ ํํ }g
์ ์ถ๊ฐ ํ ์ ์์ต๋๋ค (ํํฐ๋ฅผ ๋ซ๊ณ ํํฐ๋ง ๋ ๋ชฉ๋ก์ ๋จ์์๋ ์ซ์์ ์์ ์ป์). ๋์ 10 13 ๋ฐ์ดํธ์
๋๋ค .
ลธสโn+ยฆS3รดOร}g
์จ๋ผ์ธ์ผ๋ก ์๋ ํ๊ฑฐ๋ ๋ ๋ง์ ํ ์คํธ ์ฌ๋ก๋ฅผ ํ์ธ ํ์ญ์์ค .
๋ต๋ณ
C # (. NET ์ฝ์ด) , 93 + 18 = 111 ๋ฐ์ดํธ
a=>b=>Enumerable.Range(a,b-a+1).Select(e=>$"{e:D6}").Count(e=>e[0]+e[1]+e[2]==e[3]+e[4]+e[5])
์จ๋ผ์ธ์ผ๋ก ์ฌ์ฉํด๋ณด์ญ์์ค!
18 ๋ฐ์ดํธ using System.Linq;
. ์
๋ ฅ ๋ฐ ์ถ๋ ฅ ํ์์ด ์ ์ฐ ํ ์ ์๋ค๊ณ ๊ฐ์ ํ์ต๋๋ค. ๊ทธ๋์ ๋ ๊ฐ์ ์ ์๋ฅผ ์
๋ ฅ์ผ๋ก ์ฌ์ฉํฉ๋๋ค (๋ฒ์ ํฌํจ).
์ผ๋ถ ํ ์คํธ ๊ฒฐ๊ณผ :
a=1000
b=1100
Lucky numbers = 3 [001001, 001010, 001100]
a=2000
b=2100
Lucky numbers = 3 [002002, 002011, 002020]
a=222000
b=222100
Lucky numbers = 7 [222006, 222015, 222024, 222033, 222042, 222051, 222060]
a=0
b=999999
Lucky numbers = 55252 (that's 5.5% of the total numbers)
๋ต๋ณ
์๋ฐ ์คํฌ๋ฆฝํธ (ES6), 66 ๋ฐ์ดํธ
currying ๊ตฌ๋ฌธ์์ ์
๋ ฅ์ ๋ฐ์ต๋๋ค. (m)(n)
์ฌ๊ธฐ์ m ์ ๋ฐฐํ์ ์ํ๊ฐ์ด๊ณ n ์ ๋ฐฐํ์ ์ธ ํํ๊ฐ์
๋๋ค.
m=>g=n=>n<=m&&![...n+=''].reduce((t,d,i)=>t-=n[i+3]?d:-d,0)+g(-~n)
์จ๋ผ์ธ์ผ๋ก ์ฌ์ฉํด๋ณด์ญ์์ค!
์ด๋ป๊ฒ?
์ฐ๋ฆฌ ๋ ์ซ์ d i ๋ฅผ ๊ฑท๊ณ ์ด t๋ฅผ ์ ๋ฐ์ดํธํ์ฌ ๊ฐ ์ซ์ ์ ํ ์คํธํฉ๋๋ค .
ndi
t
- ์ด ๋ค์ 3 ์๋ฆฌ ์ด์์ ์ซ์๊ฐ ๋จ์ ์์ผ๋ฉด
tโtโdi - ๋ฌ๋ฆฌ
tโt+di
ํ๋ก์ธ์ค์ ๋์ ์ด ์์ผ๋ฉด n ์ ํ์ด์ ์ซ์์ ๋๋ค.
t=0n
์๋ฐ ์คํฌ๋ฆฝํธ (ES6), 67 ๋ฐ์ดํธ
๋์ผํ ์ ๋ ฅ ํ์.
m=>g=n=>n<=m&&!eval([...n/1e3+''].join`+`.split`+.`.join`^`)+g(n+1)
์จ๋ผ์ธ์ผ๋ก ์ฌ์ฉํด๋ณด์ญ์์ค!
์ด๋ป๊ฒ?
๊ฐ ์ซ์ :
n- ๋๋๋๋ค : ์
100038937 --> 38.937
- ์ค๋ก ๊ฐ์ ํ๊ณ ๋ถ์ด :
['3','8','.','9','3','7']
- ์ ํจ๊ป
+
:"3+8+.+9+3+7"
- ๋์ฒด
+.
์ ํจ๊ป^
:"3+8^+9+3+7"
- JS ์ฝ๋๋ก ํ๊ฐํ๊ณ ๊ฒฐ๊ณผ๊ฐ ์ธ์ง ํ
์คํธํ์ญ์์ค . ( 11 XOR 19 )
024
11 19
n โก 0 ์ธ ๊ฒฝ์ฐ ์ด๋ฉด ์์์ ์ด ์์ฑ๋์ง ์์ผ๋ฉฐ n = 0 (truthy)์ด์๋ ํ ํ๊ฐ ๋ ํํ์์ ์์ ํฉ(๊ฑฐ์ง)์ ๋๋ค. ๋ ๊ฒฝ์ฐ ๋ชจ๋ ์์๋๋ ๊ฒฐ๊ณผ์ ๋๋ค.
nโก0(mod1000)n=0
๋ต๋ณ
๋ฃจ๋น , 56 54 ๋ฐ์ดํธ
->a,b{(a..b).count{|i|j=i.digits;j[0,3].sum*2==j.sum}}
์จ๋ผ์ธ์ผ๋ก ์ฌ์ฉํด๋ณด์ญ์์ค!
๋ฐฉ๋ฒ:
- ๋ชจ๋ ์ซ์์ ๋ํด ์ซ์์ ๋ฐฐ์ด์ ๋ง๋ญ๋๋ค (๋ฐ๋ ๋จ)
- ๋ฐฐ์ด์ ์ฒ์ 3 ์๋ฆฌ ์ซ์ (์ซ์์ ๋ง์ง๋ง 3)์ 2๋ฅผ ๊ณฑํ ๊ฐ์ ์ ์ฒด ๋ฐฐ์ด์ ํฉ๊ณ์ ๋น๊ตํฉ๋๋ค.
- ๋ ํฉ์ด ๊ฐ์ ์๋ฅผ ์ผ๋ค
๋ต๋ณ
apt , 38 15 ๋ฐ์ดํธ
รตV รรฌ รฒ3n)mx rยฅ
Shaggy์๊ฒ -23 ๊ฐ์ฌํฉ๋๋ค!
๋์ ์ฒซ๋ฒ์งธ Japt ์ ์ถ; ๋ชจ๋ ๋์์ ์ฃผ์ Shaggy์๊ฒ ๊ฐ์ฌ๋๋ฆฝ๋๋ค!
๋ต๋ณ
ํ์ด์ฌ 3 117 113 106 135 ๋ฐ์ดํธ
์ด๊ฒ์ ๋์ ์ฒซ ๋ฒ์งธ ๋๋ต์ด๋ฏ๋ก ๊ฐ์ ์ ์ฌ์ง๊ฐ ์๋ค๊ณ ํ์ ํฉ๋๋ค.
def x(a,b):
n=0
for i in range(a,b+1):
if sum(map(int,str(i//1000)))==sum(map(int,str(i%1000))):n+=1
print(n)
- WW ๋๋ถ์ -4 ๋ฐ์ดํธ
- Asone Tuhid ๋๋ถ์ -7 ๋ฐ์ดํธ
- ํจ์๋ฅผ ์์ฑํ๊ธฐ์ํ +29 ๋ฐ์ดํธ
์ ์ ๋๋๊ธฐ๋ฅผ ํตํด ์ฒ์ ์ธ ์๋ฆฌ๋ฅผ ๊ฐ์ ธ์ค๊ณ ๋ง์ง๋ง ์ธ ์๋ฆฌ๋ฅผ ๋ชจ๋๋ก ํตํด ๊ฐ์ ธ์ต๋๋ค. ๋ฒ์์ ์ฒซ ๋ฒ์งธ ์ ์์ ๋ง์ง๋ง ์ ์๋ ๊ฐ๊ฐ x
as a
๋ฐ ๋ก ํจ์์ ์ธ์๋ก ์
๋ ฅ๋ฉ๋๋ค b
. ์ถ๋ ฅ์ด n
์ธ์๋ฉ๋๋ค.
์ธ ๊ณจํ ๋ :
def x(a, b):
n = 0
for i in range(a, b + 1):
if sum(map(int, str(i // 1000))) == sum(map(int, str(i % 1000))):
n += 1
print(n)
๋ต๋ณ
R , 93 86 ๋ฐ์ดํธ
@ Giuseppe /์ ์ต์ข ์นญ์ฐฌ์ ๋ ์งง์ ๋ ผ๋ฆฌ
function(a,b){for(i in sprintf("%06d",a:b)){x=utf8ToInt(i);F=F+!sum(x[1:3]-x[4:6])}
F}
์จ๋ผ์ธ์ผ๋ก ์ฌ์ฉํด๋ณด์ญ์์ค!
์ ์ ์
๋ ฅ. ๋ก ์ฑ ์๋๋ค 0
. 6 ๊ฐ์ ASCII ์ฝ๋ ํฌ์ธํธ๋ก ๋ณํํ์ญ์์ค. F
๋ด์ฅ์ ๋จ์ฉํ์ญ์์ค .