Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- flask
- 자바
- 도메인 주도 개발 시작하기
- http 개념
- 백준 12761번
- 도메인 주도 개발
- 백준 파이썬
- 하둡
- 백준
- 백준 사이트
- 몽고디비 렘
- 백준 12761
- 트리 순회
- http 완벽가이드
- 파이썬
- go
- 우분투
- ddd
- 12761번 돌다리
- golang struct
- 정렬
- MongoDB Realm
- hadoop
- 고 배열
- golang
- domain driven develop
- String 함수
- 자바 디자인 패턴
- 12761 돌다리
- 자바 디자인패턴
Archives
- Today
- Total
개발바닥
BOJ_1463 [ 1로 만들기 ] [ 파이썬 ] 본문
반응형
문제
https://www.acmicpc.net/problem/1463
1463번: 1로 만들기
첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다.
www.acmicpc.net
문제 해결 방법
top -bottom 방식으로
현재 숫자에서 3가지 연산을 했을 때 인덱스 값이 0 이라면 현재숫자까지 이동한 횟수 +1 을 해서 값을 갱신해준다.
dp[연산 후 값] = dp[연산 전 값] +1
소스 코드 보기
https://github.com/jokerKwu/BOJ_Algorithm/blob/master/python/BOJ_1463.py
jokerKwu/BOJ_Algorithm
Contribute to jokerKwu/BOJ_Algorithm development by creating an account on GitHub.
github.com
import sys
n = int(sys.stdin.readline())
dp = [0 for _ in range(n+1)]
arr = [n]
while arr or dp[0] != 0:
c_n = arr.pop()
if c_n == 1:
break
if c_n % 2 == 0 and dp[c_n//2] == 0:
dp[c_n//2] = dp[c_n] + 1
arr = [c_n // 2] + arr
if c_n % 3 == 0 and dp[c_n//3] == 0:
dp[c_n//3] = dp[c_n] + 1
arr = [c_n // 3] + arr
if dp[c_n - 1] == 0:
dp[c_n - 1] = dp[c_n] + 1
arr = [c_n-1] + arr
print(dp[1])
반응형
'[ Algorithm ] > [ PYTHON ]' 카테고리의 다른 글
BOJ_2864 [ 5와 6의 차이 ] [ 파이썬 ] (0) | 2020.06.01 |
---|---|
BOJ_12761 [ 돌다리 ] [ 파이썬 ] (0) | 2020.05.29 |
BOJ_1371 [ 가장 많은 글자 ] [ 파이썬 ] (0) | 2020.05.23 |
BOJ_14225 [ 부분수열의 합 ] [ 파이썬 ] (0) | 2020.05.23 |
BOJ_16198 [ 에너지 모으기 ] [ 파이썬 ] (0) | 2020.05.23 |
Comments