[백준]1463번 1로 만들기 c/c++

2022. 8. 4. 16:36·Algorithm/백준 & 프로그래머스
728x90
728x90

문제

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

 

1463번: 1로 만들기

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

www.acmicpc.net

 

설명

 

이 문제는 DP로 풀 수 있다.

 

1. 테이블 정의하기

2. 점화식 찾기

3. 초기값 정의하기

 

이 세가지 과정을 거쳐 문제를 풀 수 있다.

 

 

1. 테이블 정의하기
D[i]= i를 1로 만들기 위해 필요한 연산 사용 횟수의 최솟값

2. 점화식 찾기
D[12] =?

D[1]부터 D[11]까지의 값을 다 알고 있다고 가정하면
1, 2, 3, ..., 11을 1로 만들기 위한 최소 횟수를 다 알고 있다고 하면

이런 상황에서 D[12]를 구하는 방법은 12에서 할 수 있는 연산을 생각하면 된다.

D[4], D[6], D[11]을 이미 알고있다고 가정하면
3으로 나누거나 D[12] =D[4] +1
2로 나누거나 D[12] =D[6]+1
1을 빼거나 D[12]=D[11]+1
D[12] = min(D[4] + 1, D[6] + 1, D[11] + 1) 이들 중에서 최솟값이 답이 된다.

 

3. 초기값 정의하기
D[1]=0

D 배열을 for문을 돌리면서 값을 채우면 된다.

 

코드

 

#include<iostream>
using namespace std;

int d[1000000];

int main(void) {
  ios::sync_with_stdio(0);
  cin.tie(0);
  int n;
  cin >> n;
  d[1] = 0; //초기값
  for(int i = 2; i <= n; i++){
    d[i] = d[i-1]+1;  //1을 뺐을때
    if(i%2 == 0) d[i] = min(d[i],d[i/2]+1); //2로 나누어졌을때
    if(i%3 == 0) d[i] = min(d[i],d[i/3]+1); //3으로 나누어졌을때
  }
  cout << d[n];
  return 0;
}

 

 

728x90
728x90

'Algorithm > 백준 & 프로그래머스' 카테고리의 다른 글

[백준]1629번 곱셈 c/c++  (0) 2022.08.25
[백준]1431번 시리얼 번호 (sort 함수 응용)  (0) 2022.08.16
[백준]2217번 로프 c/c++  (1) 2022.08.02
[백준]1931번 회의실 배정 c/c++  (1) 2022.08.02
[백준]11047번 동전 0 c/c++  (1) 2022.08.02
'Algorithm/백준 & 프로그래머스' 카테고리의 다른 글
  • [백준]1629번 곱셈 c/c++
  • [백준]1431번 시리얼 번호 (sort 함수 응용)
  • [백준]2217번 로프 c/c++
  • [백준]1931번 회의실 배정 c/c++
성장하고픈개발자
성장하고픈개발자
방학 기념 개발블로그 작성하기
    반응형
  • 성장하고픈개발자
    꾸준히하자아자
    성장하고픈개발자
  • 전체
    오늘
    어제
    • 분류 전체보기 (63)
      • 프로젝트 (5)
        • 카카오 쇼핑하기 web (4)
        • 요약쏙 (0)
      • Algorithm (46)
        • 백준 & 프로그래머스 (40)
        • 알고리즘 (5)
      • Web (5)
        • 네트워크 (1)
        • Spring (4)
        • JPA (0)
        • HTTP (1)
      • 후기 (3)
      • SSAFY 일상 (4)
      • 취준 (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
    • 깃허브
  • 링크

    • github
  • 공지사항

  • 인기 글

  • 태그

    BOJ
    C++
    정렬
    합격수기
    Spring Data JPA
    일상
    코딩
    FNN
    withmockuser
    스택
    web
    PS
    싸피
    알고리즘
    백준
    SSAFY
    싸피 13기
    백엔드
    책리뷰
    Spring
    신경망기초
    testing
    쉬운딥러닝
    Andrew Ng
    DP
    SpringBoot
    회고
    그리디
    딥러닝
    네이버데이터센터각
  • 최근 댓글

  • 최근 글

  • 250x250
  • hELLO· Designed By정상우.v4.10.1
성장하고픈개발자
[백준]1463번 1로 만들기 c/c++
상단으로

티스토리툴바