본문 바로가기
Coding Test/Java Coding Test

[프로그래머스 / 자바] - PCCE 기출문제 3번 수 나누기

by nam_ji 2024. 9. 10.

PCCE 기출문제 3번 수 나누기 - LV.0

문제

  • 2자리 이상의 정수 number가 주어집니다.
  • 주어진 코드는 이 수를 2자리씩 자른 뒤,
  • 자른 수를 모두 더해서 그 합을 출력하는 코드입니다.
  • 코드가 올바르게 작동하도록 한 줄을 수정해 주세요.


테스트 (인텔리제이)

  • number의 자리수가 2,000,000,000 자리까지기 때문에 for문이나 while문을 이용하여 number가 0이나 0보다 작은 수가 되기 전까지 순회하도록 해야 하기 때문에 while문을 사용하고 number가 0이 아닐 때에만 순회하도록 설정했습니다.
  • 다른 사람 풀이를 보면
    1. while문으로 number가 0보다 클 때에만 반복하도록
    2. for문을 number 전까지 반복하도
    3. for문을 6번만 반복하도록
    4. for문을 number / 2까지만 반복하도록
  • 하는 등 다양한 풀이 방법이 있었습니다.
package com.namji.codingtestpcce;

import java.util.Scanner;

public class PCCE_기출문제_3번_수_나누기 {
  public static void main(String[] args) {
    /*
    2자리 이상의 정수 number가 주어집니다.
    주어진 코드는 이 수를 2자리씩 자른 뒤,
    자른 수를 모두 더해서 그 합을 출력하는 코드입니다.
    코드가 올바르게 작동하도록 한 줄을 수정해 주세요.

    입출력 예
    입력 #1
    4859
    출력 #1
    107
    입력 #2
    29
    출력 #2
    29

    입출력 설명
    #1
    입력된 수를 2자리씩 나눠 합치면 다음과 같습니다.
    48 + 59 = 107
    #2
    입력된 수를 2자리씩 나눠 합치면 다음과 같습니다.
    29  = 29
     */
    Scanner sc = new Scanner(System.in);
    int number = sc.nextInt();
    int answer = 0;

    while (number != 0){
      answer += number % 100;
      number /= 100;
    }

    System.out.println(answer);
  }
}

프로그래머스 코드

import java.util.Scanner;

public class Solution {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int number = sc.nextInt();
        int answer = 0;
        
        while (number != 0){
            answer += number % 100;
            number /= 100;
        }

        System.out.println(answer);
    }
}