# BigInteger

16개의 포스트

[JAVA][백준15829] Long을 넘는 큰 숫자 담는 그릇

` 눈물의 똥꼬쇼로 12트만에 100점 Long 범위가 넘어가지 않도록 중간에 MOD 연산을 해주는게 포인트였다. 풀고 나서 알게 된 사실인데, BigInteger 메소드를 사용하면 무한히 숫자를 담을 수 있다고 한다. ` --- BufferedReader와 BigInteger을 사용한 코드 #출처 : https://comain.tistory.com/280 --- BufferedReader랑 BigInteger 둘다 메소드가 참 많구나...;; 공부해야겠다. 백준1271 참고

2023년 9월 14일
·
0개의 댓글
·
post-thumbnail

[JAVA] BigDecimal, BigInteger 로 원시타입으로 표현 불가능한 값에 대해 처리해보자!

학습배경 [우아한테크코스 프리코스] 로또 미션을 풀이해보며 찾아낸 학습 키워드 에서 로또 문제를 풀이했을때, BigDecimal 을 사용하긴 했지만 명확한 개념을 이해하지도 못한체 급하게 사용했었습니다. 당시 "BigDecimal" 은 그냥 큰 숫자를 표현하기 위한게 아닌가? 라는 생각만 가지고 학습했었기 때문에, 이번 기회에 제대로 학습하고 추후 모든

2023년 8월 30일
·
0개의 댓글
·
post-thumbnail

코딩테스트를 위한 자바 메소드 정리(4) - BigInteger

BigInteger 말 그대로 큰 정수를 다루기 위해 등장한 클래스. 우리는 정수를 int, long 기본 자료형으로 표현할 수 있지만 이는 표현할 수 있는 값의 크기에 한계가 있다. 이를 해결하기 위해 BigInteger 클래스를 사용한다. 내장 클래스가 아니므로 import 해와야 함 ➡️ import java.math.BigInteger BigInteger(String val) 가장 자주 쓰이는 생성자. long형을 벗어나는 범위의 값을 표현해야 하기 때문에 String으로 받는다. BigInteger 계산 BigInteger.add BigInteger.subtract *`BigInteger.mult

2023년 7월 14일
·
0개의 댓글
·
post-thumbnail

[Java] 숫자 짝꿍

문제는 여기 클릭 BigInterger로 이루어진 두 String X, Y를 파라미터로 받아 둘이 공통으로 가지고 있는 수를 이용해서 가장 큰 수를 만들어 반환시켜야 한다. 문제 설명 첫번째 시도 x와 y 정수 배열을 선언하여 X와 Y에 해당 숫자가 얼마나 있는지를 나타내려 하였다. (ex. X = "999123"일 경우 9가 3개 있으므로 x[9]에는 3이 들어간다. x[1],x[2],x[3]에는 각 1이 들어간다.) char 자료형을 int로 변환해야하므로 -'0'을 해주었고 3번째 for문에서 같은 숫자를 x,y모두 1이상 갖고 있을 경우

2023년 2월 3일
·
0개의 댓글
·

[백준] 1010번: 다리 놓기

백준 1010번: 다리 놓기 문제 재원이는 한 도시의 시장이 되었다. 이 도시에는 도시를 동쪽과 서쪽으로 나누는 큰 일직선 모양의 강이 흐르고 있다. 하지만 재원이는 다리가 없어서 시민들이 강을 건너는데 큰 불편을 겪고 있음을 알고 다리를 짓기로 결심하였다. 강 주변에서 다리를 짓기에 적합한 곳을 사이트라고 한다. 재원이는 강 주변을 면밀히 조사해 본 결과 강의 서쪽에는 N개의 사이트가 있고 동쪽에는 M개의 사이트가 있다는 것을 알았다. (N ≤ M) 재원이는 서쪽의 사이트와 동쪽의 사이트를 다리로 연결하려고 한다. (이때 한 사이트에는 최대 한 개의 다리만 연결될 수 있다.) 재원이는 다리를 최대한 많이 지으려고 하기 때문에 서쪽의 사이트 개수만큼 (N개) 다리를 지으려고 한다. 다리끼리는 서로 겹쳐질 수 없다고 할 때 다리를 지을 수 있는 경우의 수를 구하는 프로그램을 작성하라. ![](h

2023년 2월 1일
·
0개의 댓글
·
post-thumbnail

[Java] BigInteger (선언, 사칙연산, 형변환)

🛫 Programmers School 구슬을 나누는 경우의 수 문제 풀이 과정에서 알게 된 개념 정리 (여기에는 내가 사용했던 부분만 정리하였다. 자세한 부분은 Reference에 작성한 사이트 확인) 🧩 BigInteger Int, Long의 범위를 벗어나는 경우 0으로 표현되고 있기에 더 큰 수를 계산하게 될때는 BigInteger을 사용해야한다. BigInteger는 무한대라고 생각하면 된다. 선언 BigInteger클래스는 문자열로 되어있어서 초기화시에 문자열로 초기화 해야한다. 정수로 초기화 하고 싶다면 valueOf를 사용한다. 사칙연산 BigInteger는 문자열로 되어있어서 BigInteger의 내부 메서드로만 연산이 가능하다. (BigInteger 끼리 계산 가능) 형변환 (int) 📑 Code

2022년 12월 16일
·
0개의 댓글
·
post-thumbnail

[프로그래머스 입문] 구슬을 나누는 경우의 수 - Java

티스토리로 이전 완료 https://gyulpiki.tistory.com/entry/%EA%B5%AC%EC%8A%AC%EC%9D%84-%EB%82%98%EB%88%84%EB%8A%94-%EA%B2%BD%EC%9A%B0%EC%9D%98-%EC%88%98-Java-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4-%EC%9E%85%EB%AC%B8

2022년 11월 4일
·
0개의 댓글
·
post-thumbnail

JAVA BigInteger

| int | long | BigInteger | | :- | - | :-: | | 4Byte | 8Byte | | | ~ 2,147,483,647 | ~ 9,223,372,036,854,775,807 | 무한? | 생성 연산 비교 ![](https://velog.velcdn.com/images/dovnaldisn/post/908ff0e9-547d-4882-9122

2022년 7월 31일
·
0개의 댓글
·
post-thumbnail

22.4.29 [HackerRank]Java Biginteger

✅ 문제 분석 이 문제에서는 큰 수를 더하거나 곱한다. 숫자가 너무 커서 long integer 같은 데이터 타입으로는 담을 수 없는 정도다. 자바 BigInteger 클래스의 빠와를 통해서 이 문제를 해결해보자! 두줄에 a,b 숫자가 주어진다. 두 숫자는 음이 아닌 정수이고 최대 200 digit이다. 첫번째 줄에는 두 수의 합이 두번째 줄에는 두 수의 곱이 출력되면 된다. 🌱 배경지식 단순 덧셈, 곱셈 문제인 것 같다. 자바에 있는 BigInteger는 int(-2,147,483,648 ~ 2,147,483,647)나 long(-9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807)의 범위를 넘어서는 아주 큰 숫자랄 다루어야 할 때 사용하는 클래스다. 숫자가 문자열 형태로 이루어져 범위가 무한해 어떠한 숫자든 담을 수 있다고 한다. BigInteger 계산 BitInteger 형 변

2022년 4월 30일
·
0개의 댓글
·
post-thumbnail

백준 10757번: 큰 수 A+B

.png) 친구가 보내준 문제다. Long 타입으로도 변환이 안돼서 도대체 이건 뭔지 감이 안 잡혔다. 나는 부장님이 말씀해주신 큰 수는 클래스를 사용해서 처리한다는 말을 기억해 'BigInteger' 클래스를 사용해 풀었다 BigInteger 타입 변수 2개를 만들어 각각에 값을 넣고 더하기 연산을 해주면 끝! .png) 검색 해보니 배열을 사용해서 푸는 방법도 있었다. 이 부분은 나중에 해보는걸로~

2021년 12월 12일
·
0개의 댓글
·
post-thumbnail

[기록]📑

캐스팅 형변환 >#### StringBuilder 문자열을 다루는 클래스 가변적인 속성, api를 이용 동일 객체내에서 문자열 변경 가능 문자열의 추가, 수정, 삭제가 자주 발생할때 유용 append() : 문자열을 추가하는 메소드 reverse() : 저장되어있던 문자열 뒤집기 >#### big integer 이름 그대로 큰 정수를 다루기 위해 등장한 클래스 기본 자료형으로 표현 할 수 있는 값의 크기가 아닐때 사용 >#### Math.sqrt(x) sqrt(squre root) 제곱하면 x가 되는 수를 반환

2021년 11월 19일
·
0개의 댓글
·

매우 큰 정수 변수

2021년 11월 17일
·
0개의 댓글
·

[백준] 2407 : 조합 (JAVA/자바)

문제 > BOJ 2407 : 조합 - https://www.acmicpc.net/problem/2407 풀이 단순의 조합의 개수를 구하는 문제이지만, n의 범위가 최대 100이기 때문에 100!을 하게 되면 숫자가 아주아주 커지게 된다. int로는 택도 없고, long으로도 힘들다. BigInteger라는 자료형을 사용해야 한다. 조합을 구하는 공식인 nCr = n! / (n-r)! * r! 을 그대로 코드에 적용해서 분모, 분자의 값을 각각 구해준 뒤 나눠주면 결과값이 된다. 코드 정리 🤦‍♀️ 오늘의 메모 주어진 조건의 최대 범위를 잘 보고 자료형을 선택하기! int : `-2,14

2021년 8월 9일
·
0개의 댓글
·
post-thumbnail

[백준] 2407번: 조합

📝문제 저번에는 recursion 이용해서 Combination을 만들어봤었는데 이번에는 DP의 방식이다. 점화식은 조합 계산 공식을 비교하다보니 비교적 빠르게(?) 생각해 낼 수 있었다. > 7C3의 경우 : (7 * 6 * 5) / (3 * 2 * 1) 8C3의 경우 : (8 * 7 * 6) / (3 * 2 * 1) ... 이런 방식으로 나아가는데 nCm은 (n-1)Cm에서 n을 곱하고 n-m을 나누면 된다. 처음에는 대충 큰 값이 나올거라고 생각해서 그냥 long으로 풀었는데 틀렸다는 결과가 나왔다. long으로 표현할 수 없는 큰 수도 결과로 나오는구나를 알았고 BigInteger를 사용했다. 📌코드

2021년 8월 8일
·
0개의 댓글
·

[Java] BigInteger Class

BigInteger Class BigInteger Class는 Java에서 정수형의 기본 자료형 int, long 의 저장 가능한 값의 크기를 넘어서는 정수형을 저장할 수 있는 Class이다. long은 약 10^18승(최대 값 9223372036854775807) 범위까지 수를 표현한다. 이 범위를 넘어갈 때는 Java에서 제공하는 BigInteger Class를 이용하면 된다. BigInteger는 문자열 형태로 이루어져 있어 숫자 범위가 무한하기에 어떠한 숫자 데이터도 담을 수 있다. BigInteger는 내장 Class가 아니라, math package에 포함되어 있다. package 구조는 java.math.BigInteger이다. BigInteger 사용 예제 🙆‍♂️ 참고사이트 🙇‍♂️ [[JAVA] #28 BigInteger

2020년 11월 14일
·
0개의 댓글
·

자바스크립트에서 아주 큰 수 다루기 (BigInt)

자바스크립트로 알고리즘 문제를 풀다가 난관에 봉착했다. 문제에서 주어진 값의 범위는 2^62 이하로 아주 큰 정수였다. 자바스크립트의 Number 타입은 정수를 안정적으로 나타낼 수 있는 값이 한정적이라 큰 수를 다룰 때 아래처럼 값의 정확도를 잃게 된다. image.png 자바스크립트에 내장된 객체인 BigInt를 사용해 이를 해결할 수 있다. image.png 위와같이 숫자뒤에 n을 붙이거나 BigInt()를 호출해서 값을 생성할 수 있다. Number로 표현했을때 Infinity가 되는 아주 큰 값

2020년 1월 19일
·
0개의 댓글
·