728x90

 

문제

꼬마 정민이는 이제 A + B 정도는 쉽게 계산할 수 있다. 이제 A + B + C를 계산할 차례이다!

 

 

입력

첫 번째 줄에 A, B, C (1 ≤ A, B, C ≤ 10^12)이 공백을 사이에 두고 주어진다.

 

 

출력

A+B+C의 값을 출력한다.

 

코드

 

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

public class Main {

	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringTokenizer st = new StringTokenizer(br.readLine());
		
		long sum = 0;
		
		for (int i = 0; i < 3; i++) {
			sum += Long.parseLong(st.nextToken());
		}
		System.out.println(sum);
	}

}

 

 

풀이

 

입력이 10 의 12승 까지 들어오기 때문에

int  형으로 하는 경우 터져버립니다.

 

그래서 long 형으로 받아서 처리하면 완료!!!

 

 

 

다음에 또 봐요

 

728x90

문제

꼬마 정민이는 이제 A + B 정도는 쉽게 계산할 수 있다. 이제 A + B + C를 계산할 차례이다!

 

 

 

제한사항

첫 번째 줄에 A, B, C (1 ≤ A, B, C ≤ 10^12)이 공백을 사이에 두고 주어진다.

 

 

입출력 예

 

77  77  7777 7931

 

코드

 

package com.home;

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

public class JUN11382 {

	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringTokenizer st = new StringTokenizer(br.readLine());
		
		long sum = 0;
		
		for (int i = 0; i < 3; i++) {
			sum += Long.parseLong(st.nextToken());
		}
		System.out.println(sum);
	}

}

 

 

풀이

 

이 문제는 단순하다.

3개의 숫자를 한줄로 입력받은 후

다 더해서 출력하면 된다.

 

이런 문제를 올리는 이유는

이 문제의 제한 사항을 보면

 

A, B, C (1 ≤ A, B, C ≤ 10^12)

 

이렇게 되어 있다.

그런데 자바에서 정수형 타입의 데이터 표현 범위를 보면

정수형 타입 메모리 크기 데이터 표현 범위
byte 1 byte -128 ~ 127
short 2 byte -215 ~ (215 - 1)
-32,768 ~ 32,767
int 4 byte -231 ~ (231 - 1)
-2,147,483,648 ~ 2,147,483,647
long 8byte -263 ~ (263 - 1)
-9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807

 

그러면 10의 12승은 몇일까?

바로 1,000,000,000,000 입니다.

 

int 형의 최대값인 2,147,483,647을

훌쩍 넘는 크기 입니다.

 

그렇기 때문에 여기서는 int 형이 아닌 

long 형을 사용해야 합니다.

 

String s = "123456789";

long num = Long.parseLong(s);

 

String, 즉 문자열을 long 형으로

형변환하기 위해서는 

위의 코드를 참고 해주시면 됩니다.

 

감사합니다.

 

다음에 또 봐요

 

'백준 > 브론즈' 카테고리의 다른 글

백준 > 11382번 > 꼬마 정민 int, long - JAVA  (0) 2023.09.07
백준 > 11653번 > 소인수분해 - JAVA  (0) 2022.12.29
728x90

 

 

문제

 

정수 N이 주어졌을 때, 소인수분해하는 프로그램을 작성하시오.

 

입력

 

첫째 줄에 정수 N (1 ≤ N ≤ 10,000,000)이 주어진다.

 

출력

 

N의 소인수분해 결과를 한 줄에 하나씩 오름차순으로 출력한다. N이 1인 경우 아무것도 출력하지 않는다.

 

 

코드

 

import java.io.*;
import java.util.*;

public class Main {
	static Scanner sc = new Scanner(System.in);
	public static void main(String args[]) throws IOException
	{
		/* 11653 소인수분해
		 * 정수 입력받아서 소인수 분해
		   */
		
		int n = sc.nextInt();
		
		for(int i = 2; i <= n;) //소인수는 1보다 큽니다, 그래서 2부터 시작
		{
			if(n%i == 0) // 나머지가 0이면 출력
			{
				n/=i;
				System.out.println(i);
			}
			else
			{
				i++;
			}
		}
			
	}
}ll

 

 

풀이

 

https://fall-in-dream.tistory.com/22

 

코딩테스트 연습 > 코딩테스트 입문 > 소인수분해 - JAVA

문제 문제 설명 소인수분해란 어떤 수를 소수들의 곱으로 표현하는 것입니다. 예를 들어 12를 소인수 분해하면 2 * 2 * 3 으로 나타낼 수 있습니다. 따라서 12의 소인수는 2와 3입니다. 자연수 n이 매

fall-in-dream.tistory.com

위의 문제랑 비슷한데

이 문제는 그냥 출략하면 되서 더 단순하다.

 

다음에 또 봐요

 

+ Recent posts