[BOJ][๐ก5][๋ฐฑ์ค#02877] 4์ 7
์์ฑ:    
์ ๋ฐ์ดํธ:
์นดํ ๊ณ ๋ฆฌ: BOJ Gold V
๋ฌธ์ ์ถ์ฒ
๋ฌธ์
์ฐฝ์์ด๋ 4์ 7๋ก ์ด๋ฃจ์ด์ง ์๋ฅผ ์ข์ํ๋ค. ์ฐฝ์์ด๊ฐ ์ข์ํ๋ ์ ์ค์ K๋ฒ์งธ ์์ ์๋ฅผ ๊ตฌํด ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
์ ๋ ฅ
์ฒซ์งธ ์ค์ K(1 โค K โค 10^9)๊ฐ ์ฃผ์ด์ง๋ค.
์ถ๋ ฅ
์ฒซ์งธ ์ค์ ์ฐฝ์์ด๊ฐ ์ข์ํ๋ ์ซ์ ์ค K๋ฒ์งธ ์์ ์๋ฅผ ์ถ๋ ฅํ๋ค.
์์
์์ 1
์ ๋ ฅ
1
์ถ๋ ฅ
4
์์ 2
์ ๋ ฅ
2
์ถ๋ ฅ
7
์์ 3
์ ๋ ฅ
3
์ถ๋ ฅ
44
My Sol
ret = ''
for n in bin(int(input())+1)[3:]:
ret += '4' if n=='0' else '7'
print(ret)
์ง๊ธ๊น์ง ํ์๋ ๊ณจ๋๋ฌธ์ ์ค์ ๊ฐ์ฅ ์งง๊ณ , ์ ์ฝ๊ฒ ํผ ๋ฌธ์ ๊ฐ ์๋๊ฐ ์ถ๋ค. ๋ฌธ์ ๋ฅผ ๋ฑ ๋ณด์์ ๋, ์
๋ ฅ์ด ๊ต์ฅํ ํฌ๊ธฐ ๋๋ฌธ์ ์ด๋ถํ์์ ๋จผ์ ์๊ฐํ๋ค๊ฐ, 2์ง์์ ๊ด๋ จ๋ ๋ฌธ์ ์ธ ๊ฒ ๊ฐ๋ค๊ณ ๋๊ผ๋ค. DP์ค๋ฌ์ด ์ ๊ทผ์ผ๋ก๋, N๋ฒ์งธ๋ก ํฐ ์ ๋ค์ 4์ 7์ ๋ถ์ด๋ฉด 2*N
, 2*N+1
์ฒ๋ผ ์ ๊ทผํ ์ ์์ง ์์๊น๋ฅผ ์๊ฐํ๋ค. ๊ทธ๋ฐ๋ฐ ์์๊ฐ ์กฐ๊ธ์ ๋ฌ๋๊ณ , ์
๋ ฅ์ผ๋ก ๋ฐ์ N์ 1์ ๋ํ ๋ค 2์ง์๋ก ๋ณํํ๋ฉด, ์์ 1์ ์ ์ธํ ๋๋จธ์ง์ ๊ท์น์ด ๋ง์น 00์ด 44, 101์ด 747์ฒ๋ผ ์งํ๋จ์ ํ์ธํ ์ ์์๋ค.
๋๋ฌธ์ bin
ํจ์ ์ฒ๋ฆฌํ์ฌ ์์ ๋ถ๋ bi
์ 1์ ์ ์ธํ๊ธฐ ์ํด 3๋ฒ index๋ถํฐ ๋ค๋ฅผ ์๋ฅธ๋ค. ์ด๋ฅผ ๋งค๋ฒ ์ํํ๋ฉฐ โ0โ์ด๋ฉด 4, ์๋๋ฉด 7์ ret์ ๋ถ์ด๋ฉฐ ๋์๊ฐ๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๋ฅผ ์ถ๋ ฅํ๋ฉด ๋๊ฒ ๋ค. ๊ต์ฅํ ๊ฐ๋จํ๊ฒ ํ ์ ์๋ ๋ฌธ์ ์๋ค.
๊ฒฐ๊ณผ
๋ง์์ต๋๋ค!!
๋๊ธ๋จ๊ธฐ๊ธฐ