달마루
기획자에서 개발자로
달마루
전체 방문자
오늘
어제
  • 분류 전체보기 (334)
    • 기획 이야기 (3)
    • 개발자로 전향한 이유 (1)
    • Github Address (1)
    • 개발자, 그 여정 (11)
      • 기초특강 (4)
      • 국비학원 선정 (4)
      • BitCamp_수업내용 (1)
      • 학원 프로젝트 후기 (1)
      • 정보처리기사 (1)
      • 개발 이야기 (0)
    • 개념 창고 (126)
      • JAVA (50)
      • CS (1)
      • Database (27)
      • NetWork (2)
      • 자료 구조 (2)
      • React (8)
      • Spring (3)
      • JPA (1)
      • HTML & CSS (18)
      • JS (3)
    • algorithm (186)
      • 백준 (161)
      • 프로그래머스 (23)
    • 사는 이야기 (0)

블로그 메뉴

  • Github
  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • Algorithm
  • Scanner
  • SQL
  • HTML
  • select
  • 백준
  • 알고리즘
  • MySQL
  • 혼공SQL
  • programmers
  • BOJ algorithm
  • 알고리즘풀이
  • BRONZE
  • 백준문제풀이
  • java algorithm
  • 프로그래머스
  • react
  • 자바
  • java
  • 혼자공부하는SQL
  • 백준알고리즘
  • 문제풀이
  • 혼공MySQL
  • sql 문제풀이
  • SQL고득점Kit
  • Bronze III
  • math
  • BOJ
  • Bronze IV
  • Bronze V

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
달마루

기획자에서 개발자로

[백준] 엄청난 부자2 - 1271 Java[자바]
algorithm/백준

[백준] 엄청난 부자2 - 1271 Java[자바]

2022. 12. 21. 20:53

[Bronze V] 엄청난 부자2 - 1271

문제 링크

 

1271번: 엄청난 부자2

첫째 줄에는 최백준 조교가 가진 돈 n과 돈을 받으러 온 생명체의 수 m이 주어진다. (1 ≤ m ≤ n ≤ 101000, m과 n은 10진수 정수)

www.acmicpc.net

성능 요약

메모리: 17968 KB, 시간: 212 ms

분류

임의 정밀도 / 큰 수 연산(arbitrary_precision), 사칙연산(arithmetic), 수학(math)

문제 설명

갑부 최백준 조교는 동전을 최소로 바꾸는데 성공했으나 김재홍 조교가 그 돈을 발견해서 최백준 조교에게 그 돈을 나누자고 따진다.

그 사실이 전 우주로 알려지자 우주에 있던 많은 생명체들이 자신들에게 돈을 분배해 달라고 당장 달려오기 시작했다.

프로토스 중앙 우주 정부의 정책인, ‘모든 지적 생명체는 동등하다’라는 규칙에 입각해서 돈을 똑같이 분배하고자 한다.

한 생명체에게 얼마씩 돈을 줄 수 있는가?

또, 생명체들에게 동일하게 분배한 후 남는 돈은 얼마인가?

입력

첫째 줄에는 최백준 조교가 가진 돈 n과 돈을 받으러 온 생명체의 수 m이 주어진다. (1 ≤ m ≤ n ≤ 101000, m과 n은 10진수 정수)

출력

첫째 줄에 생명체 하나에게 돌아가는 돈의 양을 출력한다. 그리고 두 번째 줄에는 1원씩 분배할 수 없는 남는 돈을 출력한다.

답 : 범위가 크기 때문에 int와 long사용이 어렵다.
Java에서 제공하는 BigInteger를 통해 풀어준다.
String 타입으로 사용 범위가 무한하며,
문자열이기때문에 숫자 계산시 내부 메서드를 활용,
n.divide 는 나눗셈, remainder 은 나머지를 뽑는 메서드다. 

import java.math.BigInteger;
import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        BigInteger n = sc.nextBigInteger();
        BigInteger m = sc.nextBigInteger();
        sc.close();
        System.out.println(n.divide(m));
        System.out.println(n.remainder(m));
    }
}

BigInteger 에 관한 정보는 아래에 있다.
https://nextmoveon.tistory.com/161

 

BigInteger 사용 이유, 형변환, 두 수 비교

Type 범위 int -2,147,483,648 ~ 2,147,483,647 long -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 int 와 long의 범위로 감당하기 힘든 경우 사용한다. BigInteger은 문자열 형태여서 숫자의 범위가 무한하다. 그러나 B

nextmoveon.tistory.com

 

저작자표시 비영리 변경금지 (새창열림)

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

[백준] 수 정렬하기 3 - 10989 Java[자바]  (0) 2022.12.23
[백준] 아! - 4999 Java[자바]  (0) 2022.12.22
[백준] 시험점수 - 5596 Java[자바]  (0) 2022.12.20
[백준] 긴자리 계산 - 2338 Java[자바]  (0) 2022.12.19
[백준] 합 - 8393 Java[자바]  (0) 2022.12.18
    'algorithm/백준' 카테고리의 다른 글
    • [백준] 수 정렬하기 3 - 10989 Java[자바]
    • [백준] 아! - 4999 Java[자바]
    • [백준] 시험점수 - 5596 Java[자바]
    • [백준] 긴자리 계산 - 2338 Java[자바]
    달마루
    달마루
    항상 어제보다 좋은 코드를 지향합니다. https://github.com/LimDongHyun99

    티스토리툴바