알고리즘/백준 12

[백준] 수들의 합_자바

https://www.acmicpc.net/problem/1789 1789번: 수들의 합 첫째 줄에 자연수 S(1 ≤ S ≤ 4,294,967,295)가 주어진다. www.acmicpc.net 자연수 N의 최댓값을 구해야하기 때문에 작은 자연수부터 더해야할 것이다. EX) S=60 자연수 1부터 합이 60을 넘어갈 때까지 더한다. 11까지 더했을 때 60을 넘긴다. 1+2+3+4+5+6+7+8+9+10+11 = 66 60을 만드려면 66에서 6을 빼면 된다. 이렇게 되면 서로 다른 N개의 자연수를 더해 S를 만들 수 있다. 따라서 자연수 개수는 11-1 = 10개이다. import java.util.Scanner; public class P1789 { public static void main(Strin..

알고리즘/백준 2022.11.12

[백준] 그룹 단어 체커_자바

https://www.acmicpc.net/problem/1316 1316번: 그룹 단어 체커 그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때 www.acmicpc.net 문자열로 문자 배열 만듦. 바로 앞 문자와 비교해서 같으면 넘어가고 다른데 이전에 나온적 있다면 그룹 단어가 아님, 나온적 없다면 그룹 단어가 될 수 있음 이전에 나왔는지 확인하기 위해 알파벳 개수 크기로 int 배열 만들었다. 문자 배열에서 나온 알파벳을 확인하려면 확인 배열 인덱스가 알파벳-97인 부분 값이 1인지 확인하려고 했다. 1이면 이전에 나온 알파벳이고..

알고리즘/백준 2022.11.10

[백준] 통계학_자바

https://www.acmicpc.net/problem/2108 2108번: 통계학 첫째 줄에 수의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 단, N은 홀수이다. 그 다음 N개의 줄에는 정수들이 주어진다. 입력되는 정수의 절댓값은 4,000을 넘지 않는다. www.acmicpc.net 산술평균 : N개의 수들의 합을 N으로 나눈 값 중앙값 : N개의 수들을 증가하는 순서로 나열했을 경우 그 중앙에 위치하는 값 최빈값 : N개의 수들 중 가장 많이 나타나는 값 범위 : N개의 수들 중 최댓값과 최솟값의 차이 산술평균, 중앙값, 최빈값, 범위를 차례로 구하는 문제 산술평균은 Math.round()를 사용해야 하는데 Math.floor()를 사용하는 실수를 함 중앙값과 범위는 쉽게 구했지만 최빈값..

알고리즘/백준 2022.11.10

[백준] 색종이_자바

https://www.acmicpc.net/problem/2563 2563번: 색종이 가로, 세로의 크기가 각각 100인 정사각형 모양의 흰색 도화지가 있다. 이 도화지 위에 가로, 세로의 크기가 각각 10인 정사각형 모양의 검은색 색종이를 색종이의 변과 도화지의 변이 평행하도록 www.acmicpc.net 입력 첫 줄은 색종이 개수 두 번째 줄부터 각 사각형 왼쪽 아래 x 값과 오른쪽 아래 y값이 주어진다. 사각형 길이는 가로 세로 10이라고 했으니까 100*100인 행렬을 만들고, 행렬에서 사각형에 해당하는 부분을 값을 1로 한다. 행렬에서 1인 부분 개수가 답 import java.util.Scanner; public class P2563 { public static void main(String[..

알고리즘/백준 2022.11.10

[백준]자바_3003번_킹, 퀀, 룩, 비숍, 나이트, 폰

문제 동혁이는 오래된 창고를 뒤지다가 낡은 체스판과 피스를 발견했다. 체스판의 먼지를 털어내고 걸레로 닦으니 그럭저럭 쓸만한 체스판이 되었다. 하지만, 검정색 피스는 모두 있었으나, 흰색 피스는 개수가 올바르지 않았다. 체스는 총 16개의 피스를 사용하며, 킹 1개, 퀸 1개, 룩 2개, 비숍 2개, 나이트 2개, 폰 8개로 구성되어 있다. 동혁이가 발견한 흰색 피스의 개수가 주어졌을 때, 몇 개를 더하거나 빼야 올바른 세트가 되는지 구하는 프로그램을 작성하시오. 입력 첫째 줄에 동혁이가 찾은 흰색 킹, 퀸, 룩, 비숍, 나이트, 폰의 개수가 주어진다. 이 값은 0보다 크거나 같고 10보다 작거나 같은 정수이다. 출력 첫째 줄에 입력에서 주어진 순서대로 몇 개의 피스를 더하거나 빼야 되는지를 출력한다. ..

알고리즘/백준 2021.04.27

[백준]자바_2914번_저작권

문제 창영이는 노래 여러 개를 이어서 부르는 가수이다. 유명한 노래의 비슷한 멜로디를 이어서 부르면서 언제 곡이 넘어갔는지 모르게 만드는 것이 창영이 노래의 특징이다. 이런 노래로 상업적으로 엄청난 성공을 거둔 창영이에게 큰 시련이 찾아왔다. 그것은 바로 저작권이었다. 창영이의 노래에 포함되어 있는 멜로디는 모두 저작권이 다른 사람에게 있는 노래이다. 따라서, 이 음악으로 상업적인 활동을 했기 때문에, 저작권 협회에 저작권료를 내야한다. 창영이는 자신의 앨범에 포함되어있는 저작권이 있는 멜로디의 평균값을 구해보기로 했다. 이 값은 아래와 같이 구할 수 있다. (창영이 앨범에 수록된 곡에 포함되어 있는 저작권이 있는 멜로디의 개수) / (앨범에 수록된 곡의 개수) 이때, 평균값은 항상 올림을 해서 정수로 ..

알고리즘/백준 2021.04.27

[백준]자바_2845번_파티가 끝나고 난 뒤

문제 파티가 끝나고 나면, 사람들은 누가 파티에 왔는지와 얼마나 많은 사람들이 왔는지를 궁금해한다. 보통 파티는 매우 크게 열리기 때문에, 정확하게 몇 명이 참가했는지 알 수가 없다. 지난주 토요일에 상근이는 자신의 3학년 진학을 기념하면서 매우 성대한 파티를 열었다. 그리고, 상근이는 1m2당 몇 명의 사람이 있었는지 알고있다. 상근이의 파티는 정말 엄청난 규모였기 때문에, 대부분의 신문에도 기사가 실렸다. 상근이는 서로 다른 5개의 신문을 보면서 그 기사에 적혀져있는 참가자의 수를 적었다. 상근이는 자신이 알고있는 참가자의 수가 정확하다고 생각한다. 각 신문 기사에 실려있는 참가자의 수가 몇 명 만큼 잘못되어있는지 구하는 프로그램을 작성하시오. 입력 첫째 줄에 1m2당 사람의 수 L (1 ≤ L ≤ ..

알고리즘/백준 2021.04.27

[백준]자바_2475번_검증수

문제 컴퓨터를 제조하는 회사인 KOI 전자에서는 제조하는 컴퓨터마다 6자리의 고유번호를 매긴다. 고유번호의 처음 5자리에는 00000부터 99999까지의 수 중 하나가 주어지며 6번째 자리에는 검증수가 들어간다. 검증수는 고유번호의 처음 5자리에 들어가는 5개의 숫자를 각각 제곱한 수의 합을 10으로 나눈 나머지이다. 예를 들어 고유번호의 처음 5자리의 숫자들이 04256이면, 각 숫자를 제곱한 수들의 합 0+16+4+25+36 = 81 을 10으로 나눈 나머지인 1이 검증수이다. 입력 첫째 줄에 고유번호의 처음 5자리의 숫자들이 빈칸을 사이에 두고 하나씩 주어진다. 출력 첫째 줄에 검증수를 출력한다. 예제 입력 1 0 4 2 5 6 예제 출력 1 1 크게 주의할 것 없이 풀 수 있는 문제이다. impo..

알고리즘/백준 2021.04.22

[백준]자바_2338번_긴자리 계산

문제 두 수 A, B를 입력받아, A+B, A-B, A×B를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 A가, 둘째 줄에 B가 주어진다. 각각의 수는 10진수로 1,000자리를 넘지 않으며 양수와 음수가 모두 주어질 수 있다. 출력 첫째 줄에 A+B, 둘째 줄에 A-B, 셋째 줄에 A×B를 출력한다. 각각을 출력할 때, 답이 0인 경우를 제외하고는 0으로 시작하게 해서는 안 된다(1을 01로 출력하면 안 된다는 의미). 예제 입력 1 1 -1 예제 출력 1 0 2 -1 이 문제는 1271번 문제와 비슷했다. int형으로 계산해서 출력하려고 했더니 런타임 에러가 발생했다. 그래서 BigInteger을 사용해서 풀었다. import java.math.BigInteger; import java.util.S..

알고리즘/백준 2021.04.22

[백준]자바_1271번_엄청난 부자2

문제 갑부 최백준 조교는 동전을 최소로 바꾸는데 성공했으나 김재홍 조교가 그 돈을 발견해서 최백준 조교에게 그 돈을 나누자고 따진다. 그 사실이 전 우주로 알려지자 우주에 있던 많은 생명체들이 자신들에게 돈을 분배해 달라고 당장 달려오기 시작했다. 프로토스 중앙 우주 정부의 정책인, ‘모든 지적 생명체는 동등하다’라는 규칙에 입각해서 돈을 똑같이 분배하고자 한다. 한 생명체에게 얼마씩 돈을 줄 수 있는가? 또, 생명체들에게 동일하게 분배한 후 남는 돈은 얼마인가? 입력 첫째 줄에는 최백준 조교가 가진 돈 n과 돈을 받으러 온 생명체의 수 m이 주어진다. (1 ≤ m ≤ n ≤ 101000, m과 n은 10진수 정수) 출력 첫째 줄에 생명체 하나에게 돌아가는 돈의 양을 출력한다. 그리고 두 번째 줄에는 1..

알고리즘/백준 2021.04.22