일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 재귀호출기본
- 자료구조
- 알고리즘
- 공개키 암호
- lang package
- 소수판정
- JSP
- class
- 예외처리
- 프로그래밍
- try&catch
- 객체
- 백준 알고리즘
- 형변환 연산자
- 연결된 예외
- java
- OOP
- 클래스 패스
- 자동 형변환
- LANG
- 객체지향
- bubble-sort
- 암호론
- BufferedWrite
- 백준
- 2884
- 현대암호
- jvm
- HTML
- 디렉티브
- Today
- Total
코드일기장
백준 (1110: 더하기 사이클)_Java 본문
제목: 더하기 사이클
브론즈1
문제
0보다 크거나 같고, 99보다 작거나 같은 정수가 주어질 때 다음과 같은 연산을 할 수 있다. 먼저 주어진 수가 10보다 작다면 앞에 0을 붙여 두 자리 수로 만들고, 각 자리의 숫자를 더한다. 그다음, 주어진 수의 가장 오른쪽 자리 수와 앞에서 구한 합의 가장 오른쪽 자리 수를 있어 붙이면 새로운 수를 만들 수 있다. 다음 예를 보자.
26부터 시작한다. 2+6 = 8이다. 새로운 수는 68이다. 6+8 = 14이다. 새로운 수는 84이다. 8+4 = 12이다. 새로운 수는 42이다. 4+2 = 6이다. 새로운 수는 26이다.
위의 예는 4번만에 원래 수로 돌아올 수 있다. 따라서 26의 사이클의 길이는 4이다.
N이 주어졌을 때, N의 사이클의 길이를 구하는 프로그램을 작성하시오.
입력
첫째 줄에 N이 주어진다. N은 0보다 크거나 같고, 99보다 작거나 같은 정수이다.
출력
첫째 줄에 N의 사이클 길이를 출력한다.
26이라는 수가 입력되면 26에 6을 십의 자리로 만들고 2+6=8 8을 일의 자리로 만드는 알고리즘을 구현하면 된다. 인터넷을 보고 풀었지만 좀 어렵긴 했다.
소스코드
- 16줄: 십의 자리를 저장시키는 T 만약 N이 26이면 2*10 =20 T에 20이 저장될 것이다.
- 17줄: 일의 자리를 저장시키는 t 만약 N이 26이면 (2+6)%10=8 t는 8이 저장될 것이다.
- 18줄: T+t 앞선 예로 든 수를 더하면 N=28 저장
- 19~21줄: N==test이면 do문을 벗어난다. test는 14번째 줄에서 N으로 저장시킨 상태이다. test는 사용자에게 처음 입력받은 수를 계속 지니고 있다. if문이 false이면 무한루프이다. 앞선 예로 N은 28이었으니 다시 T=20 t=1이 될 것이다.
- 22줄: if가 false이면 count값은 1씩 증가한다.
- 23줄: while은 N과 test값과 다르면 계속 실행된다. 만약 처음 붙어 같아도 do문은 처음 1번 실행은 false라도 실행된다.
알고리즘 분류
https://www.acmicpc.net/problem/1110
1110번: 더하기 사이클
0보다 크거나 같고, 99보다 작거나 같은 정수가 주어질 때 다음과 같은 연산을 할 수 있다. 먼저 주어진 수가 10보다 작다면 앞에 0을 붙여 두 자리 수로 만들고, 각 자리의 숫자를 더한다. 그 다음,
www.acmicpc.net
대표사진:
<div>아이콘 제작자 <a href="https://www.flaticon.com/kr/authors/khld939" title="khld939">khld939</a> from <a href="https://www.flaticon.com/kr/" title="Flaticon">www.flaticon.com</a></div>
'PS > 백준' 카테고리의 다른 글
백준 (2577: 숫자의 개수)_Java (0) | 2021.10.10 |
---|---|
백준 (2810: 컵홀더)_Java (0) | 2021.10.10 |
백준 (10871: X보다 작은 수)_Java (4) | 2021.10.07 |
백준 (2884: 알람 시계, 2588: 곱셈)_Java (0) | 2021.10.06 |
백준 (2562: 최댓값)_Java (0) | 2021.10.03 |