[백준`S1] 12852 - 1로 만들기 2 (Python)

2023. 11. 24. 21:14· 알고리즘/백준
목차
  1. 문제 설명
  2. 문제 풀이
728x90

문제 설명

https://www.acmicpc.net/problem/12852

 

12852번: 1로 만들기 2

첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 자연수 N이 주어진다.

www.acmicpc.net

 


문제 풀이

1로 만들기와 똑같은 문제인데 여기서는 과정을 출력해야 한다 (경로 추적)

처음에는 i마다 i를 1로 만드는 과정들을 2차원 배열로 저장하고,

이전 단계의 배열을 복사해와서 거기에 append를 통해 모든 i의 과정을 저장하는 방법을 사용하였다

n까지 다 구해지면 n을 1로 만드는 과정이 담긴 배열을 reverse 한 후 len과 함께 출력했는데 시간초과...

아마 배열을 복사하는 과정에서 시간초과가 났던 것 같다

 

시간 초과가 나와서 다른 방법을 생각했다

어디서 왔는지 경로를 추적하는 배열을 하나 더 만들었다

예를 들어 graph[i] = 9라면 i에서 9로 가는 것이 최솟값이라는 뜻이다

 

 

n = int(input())
d = [0 for _ in range(n + 1)]
graph = [0 for _ in range(n + 1)]
for i in range(2, n + 1):
d[i] = d[i - 1] + 1
x = i - 1
if i % 3 == 0 and d[i] > d[i // 3] + 1:
d[i] = d[i // 3] + 1
x = i // 3
if i % 2 == 0 and d[i] > d[i // 2] + 1:
d[i] = d[i // 2] + 1
x = i // 2
graph[i] = x
result = [n]
x = n
while x > 1:
x = graph[x]
result.append(x)
print(d[n])
print(*result)
728x90
저작자표시 (새창열림)

'알고리즘 > 백준' 카테고리의 다른 글

[백준`S2] 10971 - 외판원 순회 2 (Python)  (0) 2024.02.29
[백준`G5] 14891 - 톱니바퀴 (Python)  (2) 2024.02.28
[백준`S1] 1149 - RGB거리 (Python)  (0) 2023.11.22
[백준] 2579 - 계단 오르기 (Python)  (2) 2023.11.21
[백준] 9095 - 1, 2, 3 더하기 (Python)  (0) 2023.11.21
  1. 문제 설명
  2. 문제 풀이
'알고리즘/백준' 카테고리의 다른 글
  • [백준`S2] 10971 - 외판원 순회 2 (Python)
  • [백준`G5] 14891 - 톱니바퀴 (Python)
  • [백준`S1] 1149 - RGB거리 (Python)
  • [백준] 2579 - 계단 오르기 (Python)
셰욘
셰욘
셰욘
seiyeon
셰욘
전체
오늘
어제
  • 분류 전체보기 (176)
    • 알고리즘 (46)
      • 프로그래머스 (2)
      • 백준 (37)
      • 문제 유형 (7)
    • CS (41)
      • Linux (6)
      • DB (15)
      • 자료구조 (3)
      • OOP (2)
      • 아키텍처 (0)
    • BE (42)
      • Java (9)
      • Spring Boot (32)
    • FE (6)
      • Next.js (1)
      • JavaScript (5)
      • Vue.js (7)
      • Web (0)
    • 배포 (5)
    • 회고 (19)
      • BEYOND SW 캠프 (19)
    • 기타 (3)

블로그 메뉴

  • 홈
  • 태그
  • 방명록
  • 블로그 관리

공지사항

인기 글

태그

  • be
  • 그리디
  • 오블완
  • AWS
  • db
  • 백트래킹
  • 실습
  • Java
  • 리눅스
  • 회고
  • spring boot
  • 백준
  • 주간회고
  • Gateway
  • js
  • 자료구조
  • 구현
  • web
  • 트리
  • 우선순위 큐
  • fe
  • 알고리즘
  • dfs
  • 프로그래머스
  • 네트워크
  • 티스토리챌린지
  • bfs
  • DP
  • cs
  • vue

최근 댓글

최근 글

250x250
hELLO · Designed By 정상우.v4.2.1
셰욘
[백준`S1] 12852 - 1로 만들기 2 (Python)
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.