2019.02.15) 백준 1463번 풀이 (PyPy3)
2019. 2. 15. 19:46ㆍ프로그래밍(주력)/백준 문제풀이
1초인줄 알고 어떻게 최적화할지 많이 고민하다
2초 시간제한을보고 아주 단순하게 예전에 나왔던 수를 모아 저장하는것으로 구현성공
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | l = [[int(input())]] # 전에 나왔던건 기록할 필요가 없음 his = set() # 1이 나올때까지 돌림 while l[-1].count(1) == 0: tmp = list() for i in l[-1]: # 2로 나누어지고 예전에 나온적없으면 넣고 if i % 2 == 0: n = i // 2 if not n in his: his.add(n) tmp.append(n) # 3으로 나누어지고 예전에 나온적없으면 넣고 if i % 3 == 0: n = i // 3 if not n in his: his.add(n) tmp.append(n) # -1한 값이 예전에 나온적없으면 넣고 if not i-1 in his: his.add(i-1) tmp.append(i-1) l.append(tmp) print(len(l)-1) | cs |
'프로그래밍(주력) > 백준 문제풀이' 카테고리의 다른 글
2019.02.17) 백준 9251번 풀이 (PyPy3) (0) | 2019.02.17 |
---|---|
2019.02.16) 백준 9461번 풀이 (PyPy3) (0) | 2019.02.16 |
2019.02.14) 백준 2579번 풀이 (PyPy3) (0) | 2019.02.14 |
2019.02.13) 백준 13241번 (PyPy3) (0) | 2019.02.13 |
2019.02.12) 백준 1932번 풀이 (PyPy3) (0) | 2019.02.12 |