Keep Going

빠르지 않아도 꾸준히

브론즈 8

[브론즈 3] [Java] 백준 30802번: 웰컴 키트

아이디어개최 예정 행사에서 참가자들에게 그 사람의 사이즈에 맞는 티셔츠 한 장과 펜 한 자루를 줄 것이다.사이즈는 총 6가지가 있고, 각 사이즈별로 T장 묶음으로만 주문할 수 있다.즉, 예제와 같이 각 사이즈가 3, 1, 4, 1, 5, 9 이고 T = 5 이면 1묶음, 1묶음, 1묶음, 1묶음, 1묶음, 2묶음 해서 총 7묶음을 주문해야 한다.사이즈 별 필요 장 수가 3, 0, 5, 1, 5, 9 이면 묶음이 [1, 0, 1, 1, 1, 2]로 총 6묶음이 필요할 것이다.티셔츠는 남아도 된다.필요한 묶음의 수를 구할 때 티셔츠 수를 T로 나눠서 나온 몫보다 1개 많개 하려 했는데, 이를 위해선 (사이즈별 개수 - 1)을 해준 상태에서 T로 나눈 몫을 구하고, +1을 해주는게 편했다.그리고 (사이즈별 개..

백준/Bronze 2025.07.04

[브론즈 1] [Java] 백준 11050번: 이항 계수 1

아이디어단순히 고등 수학 과정에서 배운 nCk의 값을 구하는 문제이다.n!과 k!, (n-k)!을 구해주고 n! / k! * (n-k)!을 해주면 된다. 이를 코드로 구현하면 다음과 같다.import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.StringTokenizer;public class N11050 { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); ..

백준/Bronze 2025.03.03

[브론즈 2] [Java] 백준 7572번: 간지(干支)

아이디어십간은 10년마다, 십이지는 12년마다 바뀐다.기준을 2013년인 "F9"로 하고, 해가 늘어나고 줄어듬에 따라 순환하게 하면 된다.문자는 유니코드를 이용하여 더하거나 뺄 때 다음 문자로 넘어가는 것을 이용했다. 이를 코드로 구현하면 다음과 같다.import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;public class N7572 { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); ..

백준/Bronze 2025.03.02

[브론즈 2] [Java] 백준 10093번: 숫자

아이디어두 양의 정수를 입력받고, 둘 사이에 있는 숫자의 개수와 그 수들을 오름차순으로 출력해야 한다.숫자가 최대 10의 15승까지 될 수 있으므로 모든 변수는 long으로 받아야 한다.둘 사이의 숫자의 개수는 두 수의 차에 1을 뺀 것과 같고두 수를 입력받고 큰 수를 big, 작은 수를 small에 대입하면두 수 사이의 숫자의 수를 big - small - 1로 두면 두 수의 차가 1일때 사이의 수는 0, 차가 2일 때 사이의 수는 1... 이런식으로 나온다.하지만 이런 경우 두 수가 같을 때를 따로 설정해줘야 한다. 그 후 반복문으로 small보다 하나 큰 수부터 차례대로 출력하면 된다. 이를 코드로 구현하면 다음과 같다.import java.util.Scanner;public class Main {..

백준/Bronze 2025.02.23

[브론즈 3] [Java] 백준 2576번: 홀수

아이디어자연수는 총 7개가 주어지고, 주어진 수들 중 홀수만 모두 더하고, 홀수 중 가장 작은 수를 구해야 한다. 변수로는 주어질 수를 담을 number최솟값을 담을 min, min은 0으로 초기화 하였다.홀수의 합을 담을 sum, sum은 홀수가 없을 시 -1을 출력해야 하는 조건때문에 -1로 초기화 하였다. 반복문을 통해 숫자 입력 받기를 7번 반복하고입력받은 수가 홀수이고, 최초로 저장된 최솟값일 경우에 min을 그 수로 설정하고 sum을 0으로 바꾼다.그 후 입력받은 홀수가 기존의 min보다 작으면 다시 그 수를 min으로 설정한다. 그 후 홀수인 경우에 sum에 홀수를 합한다. 이를 코드로 구현하면 다음과 같다.import java.util.Scanner;public class N2576 { ..

백준/Bronze 2025.02.21

[브론즈 4] [Java] 백준 13136번: Do Not Touch Anything

아이디어CCTV는 N x N의 정사각형 구간만 커버할 수 있고, 대회장의 크기는 가로 R, 세로 C만큼의 크기이다.CCTV가 겹치는 부분 없이 딱 맞게 커버할 수 있으면 좋겠지만, 만약 N이 3이고, R이 7이면 나눴을 때 몫이 2이고 나머지가 1이므로 1만큼을 커버하기 위해 CCTV를 하나 더 사용해야 한다. 총 필요한 CCTV의 수는 가로 구간에 필요한 수와 세로 구간에 필요한 수를 곱한 것과 같고각 가로와 세로에 필요한 CCTV의 수는(R or C) / N 을 해서 나온 몫에나머지가 0일 경우는 그대로 몫만큼나머지가 0이 아닐 경우 몫에 +1을 한 만큼이다. R, C, N은 정수이므로 (R or C) / N 을 하면 몫을 구할 수 있고조건문을 사용하여 나머지가 있는 경우에는 몫에 +1을 해준다. 1..

백준/Bronze 2025.02.20

[브론즈 1] [Java] 백준 15786번: Send me the money

아이디어N개의 글자로 이루어진 기억하고 있는 문자열 memory의 각각의 문자는문자마다 떨어져 있어도 되니 순서대로만 포스트잇의 문자열(line)에 들어 있으면 된다. memory와 line은 모두 대문자로만 이루어져 있으니 case는 신경 쓸 필요가 없다. memory와 line을 비교해서 나온 정답일 가능성은 possibility라는 배열에 저장해두려 한다. 중요한 것은memory의 문자가 순서대로 들어가 있어야 하기 때문에memory의 제일 앞 글자부터 line에 들어 있는지 비교하면 되는데memory의 문자와 line의 문자가 매칭되는 횟수(count)를 선언하고 0으로 초기화 해memory.CharAt(count = 0) (ex. PPAP의 맨 처음 P)와 현재 확인 중인 line(ex. PPP..

백준/Bronze 2025.02.19

[브론즈 1] [Java] 백준 1952번: 달팽이2

아이디어문제의 그림처럼 처음 우측으로 출발한다 하면, 행 방향으로 출발할 때 선을 꺾은 횟수(count)는 0이고, 끝에 부딪혀 방향을 꺾게 되면 count가 1이 되며 열 방향으로 이동한다. 이를 간단히 표현하면 count가 짝수일 때 행 방향으로 이동-> M이 하나씩 감소 count가 홀수일 때 열 방향으로 이동-> N이 하나씩 감소 이를 코드로 구현하면 다음과 같다.import java.util.Scanner;public class N1952 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int M = scanner.nextInt(); int N = s..

백준/Bronze 2025.02.19