[프로그래머스] lv.2 숫자 변환하기 python

2023. 4. 3. 07:24·코딩테스트/프로그래머스
반응형

https://school.programmers.co.kr/learn/courses/30/lessons/154538

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

문제 설명

자연수 x를 y로 변환하려고 합니다. 사용할 수 있는 연산은 다음과 같습니다.

x에 n을 더합니다
x에 2를 곱합니다.
x에 3을 곱합니다.
자연수 x, y, n이 매개변수로 주어질 때, x를 y로 변환하기 위해 필요한 최소 연산 횟수를 return하도록 solution 함수를 완성해주세요. 이때 x를 y로 만들 수 없다면 -1을 return 해주세요.

제한 사항

1 ≤ x ≤ y ≤ 1,000,000
1 ≤ n < y

 

문제 풀이

완전 탐색을 이용했다..

완전 탐색은 해도해도 안익숙해지는 느낌

 

먼저 방문확인할 visit리스트를 만들어준다

그리고 x+n, x*2, x*3마다 방문확인을 찍어주는데, 여기서 방문확인에 들어갈 숫자는 연산 횟수이다.

 

x가 y에 갔을 때 visit[x]의 값을 리턴해주면 된다.

만약 리턴안되고 다 돌았다면 -> -1리턴

 

from collections import deque

def solution(x, y, n):
    q=deque()
    q.append(x)
    visit=[0]*(10**6+1)
    while q:
        x=q.popleft()
        if x==y:
            return visit[x]
        for nx in(x+n, x*2, x*3):
            if 0<= nx <= y and not visit[nx]:
                visit[nx]=visit[x]+1
                q.append(nx)
    return -1
반응형

'코딩테스트 > 프로그래머스' 카테고리의 다른 글

[프로그래머스] lv.1 크기가 작은 부분문자열 python  (0) 2023.04.09
[프로그래머스] lv.1 개인정보 수집 유효기간 python  (0) 2023.04.09
[프로그래머스] lv.1 둘만의 암호 python  (0) 2023.04.02
[프로그래머스] lv.2 위장 python  (0) 2023.04.02
[프로그래머스] lv.2 주차 요금 계산 python  (0) 2023.04.02
'코딩테스트/프로그래머스' 카테고리의 다른 글
  • [프로그래머스] lv.1 크기가 작은 부분문자열 python
  • [프로그래머스] lv.1 개인정보 수집 유효기간 python
  • [프로그래머스] lv.1 둘만의 암호 python
  • [프로그래머스] lv.2 위장 python
시시응
시시응
시시응 블로그
  • 시시응
    시시응응
    시시응
  • 전체
    오늘
    어제
    • 분류 전체보기 (126)
      • KT AIVLE (31)
      • 대외활동 (32)
        • 사회리더 대학생 멘토링 (0)
        • 22 하반기 코드클럽 (7)
        • 23 상반기 코드클럽 (9)
        • 1784 스쿨혁명 (15)
        • 멋쟁이 사자처럼 (1)
      • 프로젝트 (8)
        • 캡스톤 (3)
        • SnapNote (5)
      • study (1)
        • 데이터분석 (1)
      • 코딩테스트 (49)
        • 프로그래머스 (31)
        • 백준 (15)
        • 알고리즘 (2)
        • 자료구조 (1)
      • IT (5)
        • Git (3)
        • 개발환경 (2)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    코테
    파이썬
    코드클럽한국위원회
    소프트웨어야놀자
    대학생
    playsw_mentor
    codeclub_south_korea
    대외활동
    코딩테스트
    KT
    프로그래머스
    Lv1
    1784스쿨혁명
    Python
    AIVLE
    코드클럽
    교육봉사
    네이버커넥트재단
    에이블스쿨
    KT에이블스쿨
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
시시응
[프로그래머스] lv.2 숫자 변환하기 python
상단으로

티스토리툴바