๐ ๋ฌธ์
N์ด ์ฃผ์ด์ง ๋ hello + world = N์ ๋ง์กฑํ๋ ์๋ก ๋ค๋ฅธ ํ ์๋ฆฌ ์์ฐ์(0 ํฌํจ) d, e, h, l, o, r, w๋ฅผ ๊ตฌํด์ ์๋ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ ํํ๋ก ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์ฌ๋ผ. ๋จ, h์ w๋ 0์ด ๋ ์ ์๋ค.
๐์ ๋ ฅ
์ฒซ ๋ฒ์งธ ์ค์ ์์ ์ ์ N์ด ์ฃผ์ด์ง๋ค. N์ 32๋นํธ ์ ์ ๋ฒ์๋ก ํํํ ์ ์๋ ์๋ง ๋ค์ด์จ๋ค.
๐์ถ๋ ฅ
๋ง์ฝ ๋ต์ด ์์ผ๋ฉด 'No Answer'์ ์ถ๋ ฅํ๋ค. ๊ทธ๋ ์ง ์์ ๊ฒฝ์ฐ ๊ฐ๋ฅํ ๋ต๋ค ์ค์์ ์๋ฌด๊ฑฐ๋ ์ถ๋ ฅํ๋ค.
๐ ๋ฌธ์ ํด์
์ฒ์์๋ l์ด ๊ฐ์ ์์น์ ์๋ค๋ ๊ฒ์ ์ด์ฉํ์ฌ, n[-2]//2 ๋ก l์ ๋จผ์ ๊ตฌํ๋ค์, n[-3] - l ์ ํตํด (2*l ์ ์บ๋ฆฌ๊ฐ์ด ์๋์ง ํ์ธํ) r ์ ๊ตฌํ๊ณ , o์ d๋ for ๋ฌธ์ ๋๋ ค ๊ตฌํ๋ค, e๋ฅผ ๊ตฌํ๊ณ ๋ง์ง๋ง์ผ๋ก h,w ๋ฅผ ๊ตฌํ๋ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ์๋ค.
๊ทธ๋ฌ๋ ํ๋ ธ์ต๋๋ค ํ์ ์ ๋ฐ์๋ค.
์ด์ ๋ n[-2] = 4 ์ผ๋ l์ 2๊ฐ ๋ ์๋ ์๊ณ , 7์ด ๋ ์๋ ์๊ธฐ ๋๋ฌธ์ด๋ค.
์ด ๋๊ฐ์ง ๊ฒฝ์ฐ ๋ชจ๋ ์ฒดํฌํด์ค์ผ ํ๋๋ฐ ๋ด ์ฝ๋๋ 2์ผ ๊ฒฝ์ฐ๋ง ์ฒดํฌํด์คฌ๊ธฐ์ ํ๋ ธ์ต๋๋ค ํ์ ์ ๋ฐ์๋ ๊ฒ์ด๋ค. (์ด๋ฐฉ๋ฒ์์ ํด์ ๋์ค์ ๋ค์ ํ์ด๋ด์ผ์ง)
๊ทธ๋ฆฌ๊ณ ๋ค๋ฅธ ์ฝ๋๋ฅผ ๋ณด๋ฉด์ ๋ฌธ์ ์ ์ ๋ ํ๋ ๋ฐ๊ฒฌํ๋๋ฐ, ๋ฌธ์๊ฐ ์ค๋ณต๋์ง ์์์ผ ํ๋๋ฐ, ๋ด ์ฝ๋๋ ๊ทธ ๊ฒฝ์ฐ๋ฅผ ์ ๊ฒฝ์จ์ฃผ์ง ์์๋ค.
์๋ก์ด ํ์ด ๋ฐฉ๋ฒ์ ์ ๋ง ๋ง ๊ทธ๋๋ก ๋ธ๋ฃจํธํฌ์ค ๊ทธ ์์ฒด์ด๋ค.
0 ~ 9 ๊น์ง์ ์ ์ค์์ ์ค๋ณต ์์ด 7๊ฐ์ ์ซ์๋ฅผ ๊ณ ๋ฅด๊ณ hello์ world ๋ฅผ ๋ง๋ค์ด์ n๊ณผ ๊ฐ์ผ๋ฉด ์ถ๋ ฅํด์ฃผ๊ณ ๋ชจ๋ ์กฐํฉํด์ ์ฒดํฌํ์๋๋ฐ n๊ณผ ๊ฐ์ง ์๋ค๋ฉด No Answer๋ฅผ ์ถ๋ ฅํด์ฃผ๋ฉด ๋๋ ๋ฌธ์ ์๋ค.
๐ป ์ฝ๋
import itertools, sys
input = sys.stdin.readline
nums = [1,2,3,4,5,6,7,8,9,0]
n = int(input().rstrip())
for s in itertools.permutations(nums, 7):
h,e,l,o,w,r,d = s # s๋ nums ์์ ์ค๋ณต๋์ง ์๊ฒ 7๊ฐ๋ฅผ ๋ฝ์๊ฒ
hello = 10000*h + 1000*e + 100*l + 10*l + o
world = 10000*w + 1000*o + 100*r + 10*l + d
# hello๋ world ๋ํ ๊ฒ์ด ์
๋ ฅ๊ฐ๊ณผ ๊ฐ์ผ๋ฉด์ h์ w๊ฐ 0์ด ์๋๋ผ๋ฉด
if hello + world == n and h != 0 and w != 0:
# ์ถ๋ ฅ ํ์์ ๋ง๊ฒ ์ถ๋ ฅ
print(f" {hello}")
print(f"+ {world}")
print('-'*7)
print(str(n).rjust(7))
exit() # ์ข
๋ฃ
# for ๋ฌธ์ ๋ค ๋์๋๋ฐ๋ ํด๋น ๊ฐ์ด ์์ ๊ฒฝ์ฐ No Answer
print("No Answer")
๐ญ ์ํ์ฐฉ์ค
์ค์์ฝ๋
n = list(input())
# print(n)
if len(n) != 5 and len(n) != 6:
print("No Answer")
exit()
if int(n[-2]) == 0:
l = 5
else:
l = int(n[-2])//2
if 2*l > 9:
n3 = int(n[-3]) -1
else:
n3 = int(n[-3])
if l <= n3:
r = n3 - l
else:
r = 10+ n3 - l
for i in range(9):
for j in range(9):
if int(n[-2])%2 == 0: # ๋๋ฒ์งธ ์๋ฆฌ๊ฐ ์ง์๋ผ๋ฉด
if i+j < 10 and i+j == int(n[-1]):
o = i
d = j
break
else:
if i+j > 9 and i+j == int(str(1)+n[-1]):
o = i
d = j
break
if int(str(l)+str(l)+str(o))+int(str(r)+str(l)+str(d)) > 999:
n4 = int(n[-4]) -1
else:
n4 = int(n[-4])
if o <= n4:
e = n4 - o
else:
e = 10 + n4 - o
if int(str(e)+str(l)+str(l)+str(o)) + int(str(o)+str(r)+str(l)+str(d)) > 9999:
n5 = int(n[-5]) - 1
else:
n5 = int(n[-5])
for i in range(1,9):
for j in range(1, 9):
if len(n) == 5:
if i+j == n5 and i+j < 10:
h = i
w = j
break
else:
if i+j == (n5+10) and i+j >9:
h = i
w = j
break
try:
print(' ',h,e,l,l,o, sep='')
print('+ ',w,o,r,l,d,sep='')
print('-'*7)
print(''.join(n).rjust(7))
except:
print("No Answer")
๐ ๋ฌธ์ ๋งํฌ Hello World
'Problem Solving > ๋ฐฑ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค] 1715๋ฒ: ์นด๋ ์ ๋ ฌํ๊ธฐ - ํ์ด์ฌ (0) | 2022.07.08 |
---|---|
[๋ฐฑ์ค] 9375๋ฒ: ํจ์ ์ ์ ํด๋น - ํ์ด์ฌ (0) | 2022.07.07 |
[๋ฐฑ์ค] 17451๋ฒ: ํํ ์ฐ์ฃผ - ํ์ด์ฌ (0) | 2022.06.26 |
[๋ฐฑ์ค] 1260๋ฒ: DFS์ BFS - ํ์ด์ฌ (0) | 2022.06.25 |
[๋ฐฑ์ค] 1389๋ฒ: ์ผ๋น ๋ฒ ์ด์ปจ์ 6๋จ๊ณ ๋ฒ์น - ํ์ด์ฌ (0) | 2022.06.23 |