본문 바로가기

전체 글275

[BAEKJOON] 2523 별 찍기 - 13 입력 받은 수 N의 2 * N - 1 번째 줄만큼 *을 출력한다. N번째 줄까지는 *의 개수를 하나씩 증가시켜 출력하지만 N+1 번째 줄부터는 *의 개수를 하나씩 감소시켜 마지막 줄에는 * 하나만 출력해야 한다. 결국 출력된 모습이 이등변삼각형꼴이 되어야 한다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int .. 2022. 1. 26.
[BAEKJOON] 1065번 한수 1, 2, 3, 4, 5, ... , 99까지 모두 한수이다. 1~9 까지는 등차(d)가 0이고, 10의 d = 1(1-0), 11의 d = 0(1-1), 12의 d = 1(2-1),... 이 된다. 이렇게 1~99까지는 각 자리수를 따져보았을 때 등차가 성립한다고 할 수 있다. 입력은 1000보다 작거나 같은 수만 존재하므로 세자리수 중 한수인 경우만 골라내면 된다. 재귀함수를 활용하여 한수일 경우는 1을 더해주고, 한수가 아닐 경우는 0을 리턴하여 아무것도 더해주지 않는 방법으로 코드를 작성해보았다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main { .. 2022. 1. 26.
[BAEKJOON] 4673 셀프 넘버 예를 들어 123으로 시작한다면 다음 수는 123 + 1 + 2 + 3 = 129이고, 다음 수는 129 + 1 + 2 + 9 = 141이다. 현재 숫자와 각 자리수(일의 자리, 십의 자리, ...)의 합을 구하면 된다. 1234의 경우 일의 자리 = 1234%10 = 4 십의 자리 = (1234/10)%10 = 3 백의 자리 = (1234/100)%10 = 2 천의 자리 = 1234/1000 = 1 문제에서 10000보다 작거나 같은 셀프 넘버라고 했으니 각 자리 수를 구할 때 천의 자리까지만 고려해도 된다. 10001개의 배열을 만들어 인덱스에 해당하는 수의 셀프 넘버를 저장한다. 현재 숫자의 셀프 넘버 총합이 10000이 넘어가면 출력하지 않아도 되므로 -1로 저장한다. public class Ma.. 2022. 1. 26.
[BAEKJOON] 1145번 적어도 대부분의 배수 입력 수는 5개로 고정이다. 출력을 구하는 방법은 아래 이미지와 같이 총 10번의 연산을 통해 이루어진다. 1. 모든 경우의 수를 따져 5개의 수 중 3개를 골라 최소공배수를 구한다. 2. 최소공배수들 중 가장 작은 값을 출력한다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; import java.util.StringTokenizer; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedRead.. 2022. 1. 26.
[BAEKJOON] 2615번 오목 ※ 문제를 해결하기 전 상황, 의문이 생겼다. 예제 입력은 19*19 개의 데이터를 받는다. 19번의 반복으로 입력을 한 줄씩 읽어 들여 공백을 기준으로 나누고, 일차원 배열로 만들어야겠다고 생각했다. 아래 코드를 보면 모든 입력 데이터(데이터 19*19개)를 담는 이차원 배열 arr[][], 한 줄씩(데이터 19개) 입력 받아 split() 함수로 나누어 데이터들을 담는 일차원 배열 str[]을 생성했다. 한 줄씩 입력 받아 일차원 배열에 저장하고, 저장된 일차원 배열을 이차원 배열의 각 행에 넣어준다면 모든 데이터가 순서대로 저장될 것이라 생각했다. // 문제 있는 코드, 어느 부분이 문제인지 찾아볼 것! import java.io.BufferedReader; import java.io.IOExcep.. 2022. 1. 25.
[BAEKJOON] 1110번 더하기 사이클 주어진 수는 99보다 작거나 같은 수이므로 최대 두 자릿수의 정수이다. 1. 십의 자리 수는 10으로 나누었을 때의 몫이고, (ex. 55일 때 십의 자리 수는 55/10으로 몫 5) 2. 일의 자리 수는 10으로 나누었을 때의 나머지이다. (ex. 55일 때 십의 자리 수는 55%10으로 나머지5) 3. 다음 생성되는 수는 (나머지)와 (몫과 나머지를 더한 수의 일의 자리 수)를 이어 붙인 수 (ex. 5+0로 50) 위의 과정 반복 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main { public static void main(String[] args) .. 2022. 1. 24.