• Home

My Codegate

  • Home

백준 1110 더하기 사이클 자바 문제풀이

2024/01/19 Posted by Codegate Java No Comments

문제 링크

문제 내용은 입력으로 수를 받아 새로운 수를 만들어야 하는데, 새로운 수는 먼저 숫자가 10 미만이라면 왼쪽에 0을 붙여주고 난 뒤

만들어진 숫자의 가장 오른쪽 값 + 숫자를 쪼갠 뒤 모두 더해준 값 을 입력과 같은 숫자가 나올 때까지 계속 만들어주고, 동일한 숫자가 만들어졌다면 시도한 횟수를 출력해주면 끝이다.

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 first = Integer.parseInt(br.readLine());
    int cur = first;
    int count = 0;
    String s = String.valueOf(cur);
    while (true) {
      if (Integer.parseInt(s) < 10) {
        s = "0" + s;
      }

      String left = s.substring(0, 1);
      String right = s.substring(s.length() - 1);
      String calc = String.valueOf(Integer.parseInt(left) + Integer.parseInt(right));
      s = right + calc.substring(calc.length() - 1);
      count += 1;
      if (first == Integer.parseInt(s)) {
        System.out.println(count);
        break;
      }
    }
  }

}

문제 풀다가 주의할 점은 문제를 정확히 이해해야 하는데 일단 숫자가 10 미만이라면 왼쪽에 0을 붙여주고 이후 가장 왼쪽과 오른쪽 값을 분리해준 뒤 오른쪽 값 + 받은 숫자를 다 쪼개서 따로 더해준 후 그 숫자의 가장 오른쪽 자리 숫자를 합쳐주는 식으로 진행해야 한다

약간 이해가 안될 수 있는데, 만든 숫자의 가장 오른쪽과 다 쪼개서 합친 숫자의 오른쪽을 합치라는 얘기고(int로 더하는게 아님..) 합친 결과가 처음 숫자와 동일하다면 시도한 횟수를 출력해주면 끝이다

No Comments
0

Leave a Reply Cancel Reply

Introduction

My Codegate

Latest Posts

  • Google Search Console API 연동방법
  • 인텔리제이 Gradle Dependency 최신 버전 보는 방법
  • Wallet-Tracker 개발일지
  • Moralis API 자바로 호출방법
  • IntelliJ Commit 후 Push 따로 하는 방법

Categories

  • My Project (4)
  • Java (42)
  • Algorithm (161)
    • Java (152)
    • Algorithm Knowledge (3)
    • Algorithm site usage (6)
  • Vue.js (1)
  • Spring (4)
  • Docker (2)
  • IntelliJ (20)
  • Uncategorized (7)

Recent Comments

  • Codegate on Hello world!
  • A WordPress Commenter on Hello world!

© 2025 — mycodegate.com

Prev Next