수학 56

[Python] 백준 풀기 1292 - 쉽게 푸는 문제

파이썬 백준 1292번 브론즈 1 https://www.acmicpc.net/problem/1292 1292번: 쉽게 푸는 문제 첫째 줄에 구간의 시작과 끝을 나타내는 정수 A, B(1 ≤ A ≤ B ≤ 1,000)가 주어진다. 즉, 수열에서 A번째 숫자부터 B번째 숫자까지 합을 구하면 된다. www.acmicpc.net 문제 보기 분류: 수학, 구현 문제 풀기 변수로 selected_num 와 count_down 를 두어 selected_num 로 1, 2, 3 단계로 증가하는 위치를 표시하여 그 수를 빈 리스트에 저장하되, count_down 으로 저장해야 할 숫자의 개수를 지정한다. 이렇게 [0, 1, 2, 2, 3, 3, 3, 4, 4, 4, 4, 5, ... ] 수열의 리스트를 형성하고, 입력되..

공부하기/백준 2023.02.28

[Java] 백준 풀기 11382 - 꼬마 정민

자바 백준 11382번 브론즈 5 https://www.acmicpc.net/problem/11382 11382번: 꼬마 정민 첫 번째 줄에 A, B, C (1 ≤ A, B, C ≤ 1012)이 공백을 사이에 두고 주어진다. www.acmicpc.net 문제 보기 분류: 수학, 구현, 사칙연산 문제 풀기 주어진 숫자 A, B, C 의 범위가 1 ≤ A, B, C ≤ 10^12 이기 때문에 10^12 의 숫자가 들어올 것을 대비 해야한다. 이를 위해 입력 변수를 long 으로 지정하고 nextLong() 을 사용하여 입력받는다. 코드 보기 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner..

공부하기/백준 2023.02.27

[Java] 백준 풀기 10822 - 더하기

자바 백준 10822번 브론즈 2 https://www.acmicpc.net/problem/10822 10822번: 더하기 첫째 줄에 문자열 S가 주어진다. S의 길이는 최대 100이다. 포함되어있는 정수는 1,000,000보다 작거나 같은 자연수이다. www.acmicpc.net 문제 보기 분류: 수학, 구현, 문자열, 사칙연산, 파싱 문제 풀기 주어진 문자열을 split() 메서드를 사용하여 separater 로 " , " 를 지정하여 각각 분리한다. 이때, String 배열로 그 분리된 String 타입의 숫자들을 각각 저장한다. 배열로 저정된 String 타입의 숫자들을 하나씩 빼내어 Integer.parseInt() 를 사용하여 Integer 타입으로 변환한 후 전체 합을 구한다. 코드 보기 i..

공부하기/백준 2023.02.18

[Java] 백준 풀기 2576 - 홀수

자바 백준 2576번 브론즈 3 https://www.acmicpc.net/problem/2576 2576번: 홀수 7개의 자연수가 주어질 때, 이들 중 홀수인 자연수들을 모두 골라 그 합을 구하고, 고른 홀수들 중 최솟값을 찾는 프로그램을 작성하시오. 예를 들어, 7개의 자연수 12, 77, 38, 41, 53, 92, 85가 주어지 www.acmicpc.net 문제 보기 분류: 수학, 구현 문제 풀기 주어지는 자연수는 100 보다 작기때문에 min_num 초기값을 100 이상의 수로 설정하기 위해 111 을 저장한다. 홀수 수의 합은 0 으로 초기화 한다. 7 개의 숫자를 반복문을 통해 입력 받으면서 홀수인지를 판별하여 홀수면 누적합을 시키고 그 수가 min_num 보다 작으면 min_num 에 새로..

공부하기/백준 2023.02.10

[Java] 백준 풀기 10757 - 큰 수 A+B

자바 백준 10757번 브론즈 5 https://www.acmicpc.net/problem/10757 10757번: 큰 수 A+B 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. www.acmicpc.net 문제 보기 분류: 수학, 구현, 사칙연산, 임의 정밀도 / 큰 수 연산 문제 풀기 자바에 있는 BigInteger 를 사용해볼 수 있다. BigInteger 은 문자형 타입으로 입력을 받기 때문에 일반적인 "+" 기호를 통해서 연산이 불가능하다. 더하기 연산을 위해서는 BigInteger 클래스 내부에 있는 add() 메서드를 사용해야 한다. a.add(b) 형태로 계산을 한다. Operator Code 덧셈 bigNum1.add(bicNum2) 뺄셈 bigNum1.sub..

공부하기/백준 2023.01.31

[Java] 백준 풀기 2475 - 검증수

자바 백준 2475번 브론즈 5 https://www.acmicpc.net/problem/2475 2475번: 검증수 컴퓨터를 제조하는 회사인 KOI 전자에서는 제조하는 컴퓨터마다 6자리의 고유번호를 매긴다. 고유번호의 처음 5자리에는 00000부터 99999까지의 수 중 하나가 주어지며 6번째 자리에는 검증수가 들 www.acmicpc.net 문제 보기 분류: 수학, 구현, 사칙연산 문제 풀기 for loop 을 통해 5 개의 숫자를 입력받는다. 입력받으면서 모든 숫자를 누적하여 더해간다. 검증수를 찾기 위해 누적해 더한 최종값을 10 으로 나눈 나머지를 구하는 계산을 시행한다. 코드 보기 import java.util.Scanner; public class Main { public static voi..

공부하기/백준 2023.01.28

[Java] 백준 풀기 4673 - 셀프 넘버

자바 백준 4673번 실버 5 https://www.acmicpc.net/problem/4673 4673번: 셀프 넘버 셀프 넘버는 1949년 인도 수학자 D.R. Kaprekar가 이름 붙였다. 양의 정수 n에 대해서 d(n)을 n과 n의 각 자리수를 더하는 함수라고 정의하자. 예를 들어, d(75) = 75+7+5 = 87이다. 양의 정수 n이 주어졌을 때, www.acmicpc.net 문제 보기 분류: 수학, 구현, 브루트포스 알고리즘 문제 풀기 셀프 넘버인지 아닌지를 판단하기 위해 10_000 개의 배열의 Index 를 활용한다. 자기 자신과 각 자리의 합으로 이루어진 숫자는 셀프 넘버가 아니기때문에 배열에 1 로 표시를 해놓는다. 10_000 까지의 숫자를 모두 돌고 나서 배열에 1 이 아닌 0..

공부하기/백준 2023.01.22

[Java] 백준 풀기 25304 - 영수증

자바 백준 25304번 브론즈 5 https://www.acmicpc.net/problem/25304 25304번: 영수증 준원이는 저번 주에 살면서 처음으로 코스트코를 가 봤다. 정말 멋졌다. 그런데, 몇 개 담지도 않았는데 수상하게 높은 금액이 나오는 것이다! 준원이는 영수증을 보면서 정확하게 계산된 것 www.acmicpc.net 문제 보기 분류: 수학, 구현, 사칙연산 문제 풀기 영수증에 적힌 금액과 구입한 물건의 종류를 차례로 입력받는다. 구입한 물건의 종류만큼 for loop 을 실행하면서 각 물건의 가격과 개수를 입력받는다. 금액과 개수를 곱하여 합산 금액을 누적해 나간다. 영수증에 찍힌 총 그액과 물건의 가격과 개수로 계산된 금액이 서로 일치하는지 판단한다. 코드 보기 // package ..

공부하기/백준 2023.01.20

[Python] 백준 풀기 2635 - 수 이어가기

파이썬 백준 2636번 실버 5 https://www.acmicpc.net/problem/2635 2635번: 수 이어가기 첫 번째 수가 주어진다. 이 수는 30,000 보다 같거나 작은 양의 정수이다. www.acmicpc.net 문제 보기 분류: 수학, 브루트포스 알고리즘 문제 풀기 입력되어진 수에대해 모든 경우를 돌려본다. 만약 예제 입력과 같이 100 이 입력되었을때 99, 98, 97, ,,, 2, 1, 0 을 돌아가면 주어진 조건 "세 번째부터 이후에 나오는 모든 수는 앞의 앞의 수에서 앞의 수를 빼서 만든다." 를 만족하는 모든 경우를 따져본다. 이때, 가장 많은 수 집합이 나온 경우를 업데이트 하며 저장하고 출력한다. 코드 보기 import sys inputdata = sys.stdin.r..

공부하기/백준 2023.01.19

[Java] 백준 풀기 2738 - 행렬 덧셈

자바 백준 2738번 브론즈 5 https://www.acmicpc.net/problem/2738 2738번: 행렬 덧셈 첫째 줄에 행렬의 크기 N 과 M이 주어진다. 둘째 줄부터 N개의 줄에 행렬 A의 원소 M개가 차례대로 주어진다. 이어서 N개의 줄에 행렬 B의 원소 M개가 차례대로 주어진다. N과 M은 100보다 작거나 같 www.acmicpc.net 문제 보기 분류: 수학, 구현 문제 풀기 자바 연습을 위해 온라인 컴파일러로 하나하나 출력해 보며 풀어본다. Scanner 를 준비하여 nextInt() 로 n 과 m 을 입력받는다. 2차원 배열 a_array, b_array 그리고 result_array 를 생성하고 이중 for loop 을 통해 각각의 array 에 값을 저장한다. 두 array ..

공부하기/백준 2023.01.12