백준 자바
[백준/JAVA] 1978번 소수 찾기
2부터 X-1까지 모두 나눠서 X가 소수인지 판별하는 문제 1 https://www.acmicpc.net/problem/1978 1. 문제 주어진 수 N개 중에서 소수가 몇 개인지 찾아서 출력하는 프로그램을 작성하시오. 2. 문제 접근 1) 첫 줄에 수의 개수 N을 입력받는다. 2) N만큼 반복하며 주어진 수들을 받아서 이 중 소수의 개수를 계산하여 출력한다. 소수 찾기 1) 미리 boolean형 배열에 소수인 것은 false, 소수가 아닌 것은 true로 계산하여 값을 넣는다. 2) 에라토스테네스의 체 알고리즘을 사용하여 소수를 구한다. 참고 https://velog.io/@agfalcon/%EC%97%90%EB%9D%BC%ED%86%A0%EC%8A%A4%ED%85%8C%EB%84%A4%EC%8A%A4..
[백준/JAVA] 2775번 부녀회장이 될테야
층과 거주자 수의 규칙을 찾는 문제 https://www.acmicpc.net/problem/2775 1. 문제 평소 반상회에 참석하는 것을 좋아하는 주희는 이번 기회에 부녀회장이 되고 싶어 각 층의 사람들을 불러 모아 반상회를 주최하려고 한다. 이 아파트에 거주를 하려면 조건이 있는데, “a층의 b호에 살려면 자신의 아래(a-1)층의 1호부터 b호까지 사람들의 수의 합만큼 사람들을 데려와 살아야 한다” 는 계약 조항을 꼭 지키고 들어와야 한다. 아파트에 비어있는 집은 없고 모든 거주민들이 이 계약 조건을 지키고 왔다고 가정했을 때, 주어지는 양의 정수 k와 n에 대해 k층에 n호에는 몇 명이 살고 있는지 출력하라. 단, 아파트에는 0층부터 있고 각층에는 1호부터 있으며, 0층의 i호에는 i명이 산다. ..
[백준/JAVA] 2839번 설탕 배달
5와 3을 최소 횟수로 합하여 N을 만드는 문제 https://www.acmicpc.net/problem/2839 1. 문제 상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그램 봉지와 5킬로그램 봉지가 있다. 상근이는 귀찮기 때문에, 최대한 적은 봉지를 들고 가려고 한다. 예를 들어, 18킬로그램 설탕을 배달해야 할 때, 3킬로그램 봉지 6개를 가져가도 되지만, 5킬로그램 3개와 3킬로그램 1개를 배달하면, 더 적은 개수의 봉지를 배달할 수 있다. 상근이가 설탕을 정확하게 N킬로그램 배달해야 할 때, 봉지 몇 개를 가져가면 되는지 그 수를 구하는 프로그램을 작성하시오. 2..
[백준/JAVA] 10757번 큰 수 A+B
큰 수의 합 구하기 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...
[백준/JAVA] 단계별로 풀어보기(6단계) 코드 모음
문제 11654) 아스키 코드 import java.io.IOException; import java.io.BufferedReader; import java.io.InputStreamReader; public class Main { public static void main(String[] args) throws IOException{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); char c = br.readLine().charAt(0); System.out.println((int)c); } } 문제 11720) 숫자의 합 import java.io.IOException; import java.io.InputStrea..
[백준/JAVA] 1316번 그룹 단어 체커
1. 문제 그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때문에 그룹 단어이지만, aabbbccb는 b가 떨어져서 나타나기 때문에 그룹 단어가 아니다. 단어 N개를 입력으로 받아 그룹 단어의 개수를 출력하는 프로그램을 작성하시오. 2. 문제 접근 하나의 값을 입력받는다. 그 값만큼 반복해서 단어를 입력 받는다. 입력 받은 단어들 중 그룹 단어의 수를 출력한다. 핵심! 1) 그룹 단어의 개수를 저장하는 check 변수를 매 단어를 검사할 때 마다 1씩 증가시킨다. 2) 각 단어의 char 하나씩 접근하며 해당하는 배열의 인덱스의 값을 t..
[백준/JAVA] 2941번 크로아티아 알파벳
크로아티아 알파벳의 개수를 세는 문제 https://www.acmicpc.net/problem/2941 1. 문제 예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다. 따라서, 다음과 같이 크로아티아 알파벳을 변경해서 입력했다. 예를 들어, ljes=njak은 크로아티아 알파벳 6개(lj, e, š, nj, a, k)로 이루어져 있다. 단어가 주어졌을 때, 몇 개의 크로아티아 알파벳으로 이루어져 있는지 출력한다. dž는 무조건 하나의 알파벳으로 쓰이고, d와 ž가 분리된 것으로 보지 않는다. lj와 nj도 마찬가지이다. 위 목록에 없는 알파벳은 한 글자씩 센다. 2. 문제 접근 문자열을 입력받는다. 정수형 변수에 문자열의 길이를 저장한다. 문자열의 char를 하나씩 접근하면서 다음 조건이 있을 ..
[백준/JAVA] 2908번 상수
2개의 수를 뒤집어서 더 큰 수를 출력 https://www.acmicpc.net/problem/2908 1. 문제 상근이의 동생 상수는 수학을 정말 못한다. 상수는 숫자를 읽는데 문제가 있다. 이렇게 수학을 못하는 상수를 위해서 상근이는 수의 크기를 비교하는 문제를 내주었다. 상근이는 세 자리 수 두 개를 칠판에 써주었다. 그 다음에 크기가 큰 수를 말해보라고 했다. 상수는 수를 다른 사람과 다르게 거꾸로 읽는다. 예를 들어, 734와 893을 칠판에 적었다면, 상수는 이 수를 437과 398로 읽는다. 따라서, 상수는 두 수중 큰 수인 437을 큰 수라고 말할 것이다. 두 수가 주어졌을 때, 상수의 대답을 출력하는 프로그램을 작성하시오. 2. 문제 접근 2개의 값을 입력받는다. 2개의 수를 뒤집고 비..