[백준] - 단계별로 풀어보기(반복문) 1110

김민경·2022년 4월 6일
0

백준

목록 보기
21/39

백준 1110번

더하기 사이클

문제 출처 https://www.acmicpc.net/problem/1110


내가 작성한 코드

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {

	public static void main(String[] args) throws IOException{
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		int n = Integer.parseInt(br.readLine());
		int copy=n;
		int count=0;
		
		while(true) {
		n = ((n%10)*10) + ((n/10) + (n%10)) %10;
		count++;
		
		if(copy==n) {
			break;
		}
	}
		System.out.println(count);
	}
}

접근 방법

  • 우선 숫자(n)을 받으면 10으로 나눈 나머지 값을 구하면 일의 자리가 된다.
    ex) 56%10 = 6
    여기서 새로운 숫자의 십의 자리로 변환 해야하므로 6X10= 60 으로 만들어 준다.
  • 숫자(n)의 십의 자리와 일의자리를 더한 값을 구한다.
    ex) 56(n) -> 5 (=n/10) + 6 (=n%10) = 11 이 나온다.
    여기서 새로운 숫자의 일의 자리로 변환 해야하므로 11 % 10 = 1
    60 + 1 = 61 새로운 숫자가 생성된다.
  • 이런 방법을 수식으로 나타내면 ((n%10)*10) + ((n/10) + (n%10)) %10 이다. 이 값을 다시 n에 넣어주면서 count에 1씩 올려주면서 카운트를 센다.
  • 처음 숫자 값을 copy에 넣어주고 처음 값n과 같아지면 반복문을 종료한다.

0개의 댓글

관련 채용 정보