누룽지맛치킨
어미새의 개발일지
누룽지맛치킨
전체 방문자
오늘
어제
  • 분류 전체보기 (86)
    • 코틀린 (8)
    • 안드로이드 (5)
      • 디자인 (2)
      • 개발 (2)
      • 도구 (1)
    • 피그마 (1)
    • 대외활동 (0)
    • 프로젝트 (0)
    • 백준 (55)
      • JAVA (55)
    • 알고리즘 (3)
    • 클라우드 (5)
    • 스터디 (2)
      • 코테 (2)
    • 자료구조 (5)
    • 컴퓨터 기술 (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 자료구조
  • 백준 자바 다이나믹 프로그래밍
  • 백준 자바 벌집
  • 안드로이드 디자인
  • 코틀린
  • 백준 자바 누적합
  • 클라우드
  • 백준 자바
  • 백준 자바 정렬
  • 코틀린 runBlocking
  • 백준 자바 수열
  • 클라우드 컴퓨팅
  • Room version 올리기
  • 자바 Priority Queue
  • 알고리즘 조합
  • 코틀린 인 액션
  • 백준 자바 2292번
  • 백준 자바 2559번
  • 안드로이드
  • Room Migration

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
누룽지맛치킨

어미새의 개발일지

백준/JAVA

[백준/JAVA] 10757번 큰 수 A+B

2023. 1. 19. 13:24
  • 큰 수의 합 구하기

https://www.acmicpc.net/problem/10757

1. 문제

두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.

2. 문제 접근

  • 두 개의 수를 입력받는다.
  • 두 개의 수의 합을 출력한다. -> 단, 두 수의 범위는 0 < A,B < 1010000

핵심!

  • 자바에서 정수 자료형 중 가장 메모리가 큰 것은 long이다. 16byte로 1010000 의 범위의 수를 저장하지 못한다. 고로, 문자열로 합을 구해보자. 아래의 코드는 문자열의 문자 하나하나 접근하며 합을 구하는 방법이다. 입력 받은 두 수를 정수의 배열에 저장해두고 배열 인덱스 단위로 합을 구하여도 된다!!

3. 코드

import java.io.IOException;
import java.io.BufferedReader;
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());
        String A = st.nextToken();
        String B = st.nextToken();
        StringBuilder sb = new StringBuilder();
        int temp = 0;
        int num = 0;
        int i = (A.length() < B.length()) ? A.length() : B.length();
        for(int j =  0; j<i;j++) {
            num = (int)A.charAt(A.length()-1-j) -'0' + (int)B.charAt(B.length()-1-j)-'0' + temp;
            temp = num/10;
            num = num%10;
            sb.append(num);
        }
        if(A.length()>B.length()) {
            for(int j = i ; j<A.length();j++) {
                num = (int)A.charAt(A.length()-1-j)-'0' + temp;
                temp = num/10;
                num = num%10;
                sb.append(num);
            }
        }
        else {
            for(int j = i ; j<B.length();j++) {
                num = (int)B.charAt(B.length()-1-j)-'0' + temp;
                temp = num/10;
                num = num%10;
                sb.append(num);
            }
        }
        if(temp==1) {
            sb.append(1);
        }
        sb.reverse();
        System.out.println(sb);
    }
}

'백준 > JAVA' 카테고리의 다른 글

[백준/JAVA] 2775번 부녀회장이 될테야  (0) 2023.01.19
[백준/JAVA] 2839번 설탕 배달  (0) 2023.01.19
[백준/JAVA] 1316번 그룹 단어 체커  (2) 2023.01.19
[백준/JAVA] 2941번 크로아티아 알파벳  (0) 2023.01.18
[백준/JAVA] 2908번 상수  (0) 2023.01.18
    '백준/JAVA' 카테고리의 다른 글
    • [백준/JAVA] 2775번 부녀회장이 될테야
    • [백준/JAVA] 2839번 설탕 배달
    • [백준/JAVA] 1316번 그룹 단어 체커
    • [백준/JAVA] 2941번 크로아티아 알파벳
    누룽지맛치킨
    누룽지맛치킨

    티스토리툴바