일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 |
Tags
- SSAFY 7기
- KT
- 신문 스크랩
- it 이슈
- html
- Java
- IT 동향
- 코딩테스트 연습
- 리얼클래스
- python
- IT 트렌드
- 프로그래머스
- 싸피셜
- it 뉴스
- 네트워크 관리사
- 코딩테스트
- 네트워크 관리사 2급 실기
- 구글
- java 객체지향 프로그래밍
- 카카오
- 백준위
- 우테코
- 백준
- SSAFYcial
- 코테
- 싸피
- 인앱결제
- 신문스크랩
- SSAFY
- 네트워크 관리사 2급
Archives
- Today
- Total
개발자일걸요..?
14950번 3n+1수열 본문
728x90
반응형
링크 : https://www.acmicpc.net/problem/14920
14920번: 3n+1 수열
다음의 점화식에 의해 정해지는 수열 C(n)을 생각하자: C(n+1) = C(n)/2 (C(n)이 짝수일 때) = 3*C(n)+1 (C(n)이 홀수일 때) 초항 C(1)이 자연수로 주어지면, 이 점화식은 자연수로 이루어지는 수열을 정한다.
www.acmicpc.net
문제
다음의 점화식에 의해 정해지는 수열 C(n)을 생각하자:
C(n+1) = C(n)/2 (C(n)이 짝수일 때)
= 3*C(n)+1 (C(n)이 홀수일 때)
초항 C(1)이 자연수로 주어지면, 이 점화식은 자연수로 이루어지는 수열을 정한다. 예를 들어, C(1)=26이면, 다음의 수열이 된다.
26, 13, 40, 20, 10, 5, 16, 8, 4, 2, 1, 4, 2, 1, 4, 2, 1, ...
이 경우, 수열의 뒷부분은 4, 2, 1 이 끝없이 반복된다. 실제로 C(1)이 5×260보다 작은 자연수인 모든 수열은 언젠가는 4, 2, 1로 끝나게 된다는 것이 알려져 있다.
주어진 입력 C(1)에 대하여 C(n)이 처음으로 1이 되는 n을 출력하시오.
입력
C(1); 1 ≤ C(1) ≤ 100000
출력
C(n)이 처음으로 1이 되는 n
예제 입력 1
26
예제 출력 1
11
예제 입력 2
7
예제 출력 2
17
시뮬레이션 알고리즘 이용
수열의 요소가 1일 될때까지 공식 반복하면서 체크
입력예제를 이용한 과정
입력 : 26
C(1) | 26 | C(7) | 16 |
C(2) | 13 | C(8) | 8 |
C(3) | 40 | C(9) | 4 |
C(4) | 20 | C(10) | 2 |
C(5) | 10 | C(11) | 1 |
C(6) | 5 |
출력 : 11
작성한 코드
c = int(input())
progression = []
count = 1
progression.append(c)
while c !=1:
if c%2==0:
c=c/2
else:
c=3*c+1
progression.append(c)
count+=1
print(count)
반응형
'알고리즘코딩 > Baekjoon Online Judge' 카테고리의 다른 글
1260번 DFS와 BFS (0) | 2021.11.06 |
---|---|
1759번 암호 만들기 (0) | 2021.11.05 |
13698번 Hawk eyes (0) | 2021.11.04 |
4084번 Viva la Diferencia (0) | 2021.11.04 |
10812번 바구니 순서 바꾸기 (0) | 2021.11.04 |
Comments