전체 글 126

백준 7568

덩치 백준 온라인 저지 알고리즘 문제풀이 문제 우리는 사람의 덩치를 키와 몸무게, 이 두 개의 값으로 표현하여 그 등수를 매겨보려고 한다. 어떤 사람의 몸무게가 x kg이고 키가 y cm라면 이 사람의 덩치는 (x,y)로 표시된다. 두 사람 A 와 B의 덩치가 각각 (x,y), (p,q)라고 할 때 x>p 그리고 y>q 이라면 우리는 A의 덩치가 B의 덩치보다 "더 크다"고 말한다. 예를 들어 어떤 A, B 두 사람의 덩치가 각각 (56,177), (45,165) 라고 한다면 A의 덩치가 B보다 큰 셈이 된다. 그런데 서로 다른 덩치끼리 크기를 정할 수 없는 경우도 있다. 예를 들어 두 사람 C와 D의 덩치가 각각 (45, 181), (55,173)이라면 몸무게는 D가 C보다 더 무겁고, 키는 C가 더 ..

Problem Solving/BOJ 2020.04.22

백준 2231

분해합 백준 온라인 저지 알고리즘 문제풀이 문제 어떤 자연수 N이 있을 때, 그 자연수 N의 분해합은 N과 N을 이루는 각 자리수의 합을 의미한다. 어떤 자연수 M의 분해합이 N인 경우, M을 N의 생성자라 한다. 예를 들어, 245의 분해합은 256(=245+2+4+5)이 된다. 따라서 245는 256의 생성자가 된다. 물론, 어떤 자연수의 경우에는 생성자가 없을 수도 있다. 반대로, 생성자가 여러 개인 자연수도 있을 수 있다. 자연수 N이 주어졌을 때, N의 가장 작은 생성자를 구해내는 프로그램을 작성하시오. 입력 첫째 줄에 자연수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 출력 첫째 줄에 답을 출력한다. 생성자가 없는 경우에는 0을 출력한다. 코드 import java.io.BufferedR..

Problem Solving/BOJ 2020.04.22

백준 2798

블랙잭 백준 온라인 저지 알고리즘 문제풀이 문제 카지노에서 제일 인기 있는 게임 블랙잭의 규칙은 상당히 쉽다. 카드의 합이 21을 넘지 않는 한도 내에서, 카드의 합을 최대한 크게 만드는 게임이다. 블랙잭은 카지노마다 다양한 규정이 있다. 한국 최고의 블랙잭 고수 김정인은 새로운 블랙잭 규칙을 만들어 상근, 창영이와 게임하려고 한다. 김정인 버전의 블랙잭에서 각 카드에는 양의 정수가 쓰여 있다. 그 다음, 딜러는 N장의 카드를 모두 숫자가 보이도록 바닥에 놓는다. 그런 후에 딜러는 숫자 M을 크게 외친다. 이제 플레이어는 제한된 시간 안에 N장의 카드 중에서 3장의 카드를 골라야 한다. 블랙잭 변형 게임이기 때문에, 플레이어가 고른 카드의 합은 M을 넘지 않으면서 M과 최대한 가깝게 만들어야 한다. N장..

Problem Solving/BOJ 2020.04.21

Spring Properties 주요 설정

application.properties 주요 설정들 Datasource spring.datasource.driver-class-name : DB 드라이버 spring.datasource.url : jdbc url spring.datasource.username : DB 접근 계정 spring.datasource.password : DB 계정 비밀번호 JPA setting spring.jpa.hibernate.ddl-auto : DDL 모드. 실제 "hibernate.hbm2ddl.auto"속성. spring.jpa.database-platform : 작동할 DB의 이름이며 기본적으로 자동 감지됩니다. 사용하는 DB에 맞게 방언을 설정합니다. spring.jpa.generate-ddl : 시작시 스키마를..

Spring Data JPA Repository Query method 키워드

Supported query keywords Logical keyword : Keyword expressions AND : And OR : Or AFTER : After, IsAfter BEFORE Before, IsBefore CONTAINING : Containing, IsContaining, Contains BETWEEN : Between, IsBetween ENDING_WITH : EndingWith, IsEndingWith, EndsWith EXISTS : Exists FALSE : False, IsFalse GREATER_THAN : GreaterThan, IsGreaterThan GREATER_THAN_EQUALS : GreaterThanEqual, IsGreaterThanEqual IN :..

백준 2741

N 찍기 백준 온라인 저지 알고리즘 문제풀이 문제 자연수 N이 주어졌을 때, 1부터 N까지 한 줄에 하나씩 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 100,000보다 작거나 같은 자연수 N이 주어진다. 출력 첫째 줄부터 N번째 줄 까지 차례대로 출력한다. 코드 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); int n; do { n = scan.nextInt(); } while (n 100000); scan.close(); for (int i = 1; i

Problem Solving/BOJ 2020.03.24

백준 15552

빠른 A+B 백준 온라인 저지 알고리즘 문제풀이 문제 본격적으로 for문 문제를 풀기 전에 주의해야 할 점이 있다. 입출력 방식이 느리면 여러 줄을 입력받거나 출력할 때 시간초과가 날 수 있다는 점이다. C++을 사용하고 있고 cin/cout을 사용하고자 한다면, cin.tie(NULL)과 sync_with_stdio(false)를 둘 다 적용해 주고, endl 대신 개행문자(\n)를 쓰자. 단, 이렇게 하면 더 이상 scanf/printf/puts/getchar/putchar 등 C의 입출력 방식을 사용하면 안 된다. Java를 사용하고 있다면, Scanner와 System.out.println 대신 BufferedReader와 BufferedWriter를 사용할 수 있다. BufferedWriter...

Problem Solving/BOJ 2020.03.24

백준 8393

합 백준 온라인 저지 알고리즘 문제풀이 문제 n이 주어졌을 때, 1부터 n까지 합을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 n (1 ≤ n ≤ 10,000)이 주어진다. 출력 1부터 n까지 합을 출력한다. 코드 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); scan.close(); int n, sum = 0; do { n = scan.nextInt(); } while (n 10000); for (int i = 1; i

Problem Solving/BOJ 2020.03.24

백준 10950

A+B - 3 백준 온라인 저지 알고리즘 문제풀이 문제 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있으며, 각 줄에 A와 B가 주어진다. (0 < A, B < 10) 출력 각 테스트 케이스마다 A+B를 출력한다. 코드 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); int a, b, t; t = scan.nextInt(); int[] result = new int[t]; for (int i = 0; i < ..

Problem Solving/BOJ 2020.03.24

백준 2739

구구단 백준 온라인 저지 알고리즘 문제풀이 문제 N을 입력받은 뒤, 구구단 N단을 출력하는 프로그램을 작성하시오. 출력 형식에 맞춰서 출력하면 된다. 입력 첫째 줄에 N이 주어진다. N은 1보다 크거나 같고, 9보다 작거나 같다. 출력 출력형식과 같게 N1부터 N9까지 출력한다. 코드 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); int n; do { n = scan.nextInt(); } while (n > 9 || n < 1); scan.close(); for (int i = 1; i

Problem Solving/BOJ 2020.03.13