https://www.acmicpc.net/problem/13140
문제 이름이 Hello World! 다. 뭔가 반가워서 시도했는데 문제도 되게 재밌는 문제다.
문제를 고민하다가 어차피 반복에 들어가는 범위가 0~10까지 밖에 안되므로 여러번 충접해도 1억 이내에 계산할수 있다.
(파이썬은 보통 1초에 1억번 계산)
그래서 완전탐색(브루트포스)으로 경우의 수를 다 훓으면서 풀었다.
import sys
input = sys.stdin.readline
N = int(input())
def Sol():
for h in range(1,10):
for e in range(10):
if h == e:
continue
for l in range(10):
if l == h or l == e:
continue
for o in range(10):
if o == h or o == e or o == l:
continue
else:
hello = (10000*h + 1000*e + 100*l + 10*l + o)
for w in range(1,10):
if w == h or w == e or w == l or w == o:
continue
for r in range(10):
if r == h or r == e or r == l or r == o or r == w:
continue
for d in range(10):
if d == h or d == e or d == l or d == o or d == w or d == r:
continue
else:
world = (10000*w + 1000*o + 100*r + 10*l + d)
hello_world = hello + world
if hello_world == N and N < 100000:
print(" ", hello, sep = "")
print("+ ", world, sep = "")
print("-------")
print(" ", N, sep= "")
sys.exit()
elif hello_world == N and N >= 100000:
print(" ", hello, sep = "")
print("+ ", world, sep = "")
print("-------")
print(" ", N, sep= "")
sys.exit()
print("No Answer")
if __name__ == "__main__":
Sol()
문제가 재밌어서 다른 사람들은 어떻게 풀었나 보니까...급 진지해지면 반성했다.
백준 다이아님이 푸신 코드를 봤는데... 정말 효율적으로 잘 짜셨다.
(실딱이가 눈물을 흘리는 순간...ㅠ)
그 분의 알고리즘을 이용하여 다시 코드를 짰다...
import sys
input = sys.stdin.readline
N = int(input())
def Sol():
for h in range(10000,100000):
w = N - h
h = str(h); w = str(w)
if len(w) == 5 and h[2] == h[3] == w[3] and h[4] == w[1] and len(set(w+h)) == 7:
if N < 100000:
print(" ", h, sep = "")
print("+ ", w, sep = "")
print("-------")
print(" ", N, sep= "")
sys.exit()
else:
print(" ", h, sep = "")
print("+ ", w, sep = "")
print("-------")
print(" ", N, sep= "")
sys.exit()
print("No Answer")
if __name__ == "__main__":
Sol()
시간이 확 줄어든 것을 한번에 알 수 있다...
정말 열심히 해야겠다고 또 다짐한다.
'📚알고리즘 > 백준' 카테고리의 다른 글
[백준 1377번] 버블 소트 (Python/파이썬) (0) | 2023.01.31 |
---|---|
[백준 20442번] ㅋㅋ루ㅋㅋ (Python/파이썬) (0) | 2023.01.30 |
[백준 2696번] 중앙값 구하기 (Python/파이썬) (0) | 2023.01.27 |
[백준 7662번] 이중 우선순위 큐 (Python/파이썬) (0) | 2023.01.24 |
[백준 1107번] 리모컨 (Python/파이썬) (0) | 2023.01.22 |