Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- 자바
- 알고리즘
- ArrayList
- java
- 가장 짧은 문자거리
- 인프런
- 뒤집은 소수
- 등수구하기
- 코테준비
- 큰 수 출력하기
- 격자판
- 보이는 학생
- 두 배열 합치기
- 최대 길이
- 임시반장 정하기
- GitHub #Commit #BaekJoon
- Two Pointer
- 아스키코드
- 모든행과열대각선의합
- 공통원소 구하기
- Pointer
- 배열
- 누적 계산
- 10991
- 점수계산
- 백준
- 투 포인터
- 10992
- array
- 연속부분수열
Archives
- Today
- Total
ezhoon
[백준] 1110_더하기 사이클_Java 본문
⚠️주의사항
- 1의 자리는 *10 해서 나온 숫자의 10의 자리를 다음 숫자의 10의 자리로 넘긴다.
- 1의 자리와 10의 자리를 서로 더해서 나온 값의 1의 자리를 다음 숫자의 1의 자리로 넘긴다.
- 사이클 수를 출력한다.
문제에서 10보다 작은 수가 주어질 경우 0을 붙여 두 자리 수로 만들어 준다를 간단하게 생각하면 1의 자리 숫자 * 10 한 것이라고 생각할 수 있습니다.
위 주의사항을 코드로 만들어 보겠습니다.
N = ((N % 10) * 10) + (((N % 10) + (N / 10)) % 10);
N % 10 * 10 -> N의 1의 자리를 다음 숫자의 10의 자리로 만들어주는 과정입니다. %10 해서 나온 나머지 값에 *10 해줘서 다음 숫자의 10의 자리 숫자로 만들어줍니다.
((N % 10) + (N / 10)) % 10 -> N을 %10 해서 1의 자리를 구하고 N / 10 해서 10의 자리를 구한 뒤 더하고 %10 해서 나온 나머지 값을 만들어서 다음 숫자의 1의 자리로 만들었습니다.
문제풀이
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class While_1110 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
int fixedNum = N;
int cnt = 1;
while (true) {
N = ((N % 10) * 10) + (((N % 10) + (N / 10)) % 10); //(N % 10) * 10) 다음 숫자의 10의 자리 + ((N % 10) + (N / 10)) % 10 다음 숫자의 1의 자리
if (N == fixedNum) {
break;
}
cnt++; // 사이클 수 더해주기
}
System.out.println(cnt);
}
}
'[Java] 백준 문제풀이 > while문' 카테고리의 다른 글
[백준] 10951_A+B-4_Java (0) | 2022.01.06 |
---|---|
[백준] 10592_A+B-5_Java (0) | 2022.01.06 |
Comments