알고리즘 문제 풀이/프로그래머스

프로그래머스 점프와 순간 이동

2023. 3. 31. 10:17
목차
  1. 문제 링크
  2. 문제 설명
  3. 문제 풀이
  4. 다른 사람의 풀이

문제 링크

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

문제 설명

문제 풀이

- 처음에는 현재 위치에서 +1 칸을 이동하고 count도 1증가시키거나 *2칸을 이동하고 count는 증가시키지 않도록 하여 큐에 추가하는 방식인 BFS로 풀었으나 시간초과가 발생했다. 

from collections import deque
def solution(n):
    ans = n
    queue= deque([(1,1)])
    while queue:
        val = queue.popleft()
        if val[1] >=n : continue
        if val[0] >n: continue
        elif  val[0] == n :
            if val[1] < ans: ans = val[1]
        queue.append((val[0]*2,val[1]))
        queue.append((val[0]+1,val[1]+1))

    return ans

 

 

- 그래서 문제 풀이를 위한 수학적 방식이 있지 않을까 고민해 본 결과 아래와 같은 코드를 작성하여 정답을 맞췄다.

EX) 5000 -> 2500 -> 1250 -> 625 -> 624(count+=1 ) -> 312 -> 156 -> 78 -> 39 -> 38(count+=1) -> 19

-> 18( count+=1) -> 9 -> 8( count+=1)  ->4->2->1->0( count+=1)  종료 count = 5

def solution(n):
    ans =0
    while n:
        if n %2 == 0:
            n//=2
        else: 
            ans+=1 
            n-=1
    return ans

다른 사람의 풀이

- 아래 풀이의 경우 n을 이진수로 바꾸어 1의 개수를 세어 주는 방식으로 코드를 작성했다

- 정말 깔끔한 풀이인 것 같다.

def solution(n):
    return bin(n).count('1')

 

'알고리즘 문제 풀이 > 프로그래머스' 카테고리의 다른 글

[프로그래머스] 피로도 - python[DFS]  (3) 2023.07.27
[프로그래머스] 숫자 문자열과 영단어 - python[문자열]  (2) 2023.07.10
[프로그래머스] 신고 결과 받기 - python[Hashing]  (2) 2023.07.10
프로그래머스 정수 삼각형  (0) 2023.04.10
프로그래머스 구명보트 파이썬  (0) 2023.03.28
  1. 문제 링크
  2. 문제 설명
  3. 문제 풀이
  4. 다른 사람의 풀이
'알고리즘 문제 풀이/프로그래머스' 카테고리의 다른 글
  • [프로그래머스] 숫자 문자열과 영단어 - python[문자열]
  • [프로그래머스] 신고 결과 받기 - python[Hashing]
  • 프로그래머스 정수 삼각형
  • 프로그래머스 구명보트 파이썬
잘잔디
잘잔디
4학년이 되고 취업 준비를 위해 2023-01-01부터 공부한 내용을 정리한 블로그입니다.
잘잔디
MBCS 공부일지
잘잔디
전체
오늘
어제
  • 분류 전체보기 (217)
    • 파이썬 (28)
      • 파이썬 이론 (8)
      • NumPy (3)
      • Pandas (6)
      • 파이썬 시각화 (8)
      • 응용 (2)
    • Java (3)
    • Back (38)
      • DataBase이론 (12)
      • MySQL (2)
      • JSP (8)
      • JSTL (2)
      • Spring (0)
      • Django (8)
      • MongoDB (6)
      • FastAPI (0)
    • Front (8)
      • HTML (3)
      • CSS (2)
      • JS (1)
    • 회고록 (10)
    • 알고리즘 문제 풀이 (95)
      • 알고리즘 이론 공부 (14)
      • 프로그래머스 (69)
      • 백준 (12)
    • 머신러닝 (0)
    • 딥러닝 (0)
    • Git (3)
    • R 프로그래밍 (3)
    • 빅데이터 관리 (16)
      • 리눅스 (4)
      • Hadoop (12)
    • AWS (2)
    • 일상 (10)
      • 책 리뷰 (5)
      • TOEIC (2)
      • 자잘하게 공부한 것들 (2)
    • 사이버보안 (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 객체지향
  • JS
  • playdata
  • web
  • db
  • 독산역
  • HTML
  • OOP
  • 골드
  • git
  • 이중우선순위 큐
  • 즐거웠다
  • Java
  • 백준
  • CSS
  • Database
  • JavaScript
  • backend
  • Encore

최근 댓글

최근 글

hELLO · Designed By 정상우.
잘잔디
프로그래머스 점프와 순간 이동
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

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

블로그 게시글

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

모든 영역

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

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