본문 바로가기

전체 글94

[BOJ] 백준 2675번: 문자열 반복 (Java) 문제링크 https://www.acmicpc.net/problem/2675 2675번: 문자열 반복 문자열 S를 입력받은 후에, 각 문자를 R번 반복해 새 문자열 P를 만든 후 출력하는 프로그램을 작성하시오. 즉, 첫 번째 문자를 R번 반복하고, 두 번째 문자를 R번 반복하는 식으로 P를 만들면 된다 www.acmicpc.net 나의코드 import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.IOException; public class Main{ public static void main(String[] args) throws IOException{ BufferedReader br = new BufferedReade.. 2023. 3. 20.
[BOJ] 백준 1157번: 단어 공부 (Java) 문제링크 https://www.acmicpc.net/problem/1157 1157번: 단어 공부 알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다. www.acmicpc.net 나의코드 import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.IOException; public class Main{ public static void main(String[] args) throws IOException{ BufferedReader br = new BufferedReader(new InputStreamReader(.. 2023. 3. 19.
[BOJ] 백준 10809번: 알파벳 찾기 (Java) 문제링크 https://www.acmicpc.net/problem/10809 10809번: 알파벳 찾기 각각의 알파벳에 대해서, a가 처음 등장하는 위치, b가 처음 등장하는 위치, ... z가 처음 등장하는 위치를 공백으로 구분해서 출력한다. 만약, 어떤 알파벳이 단어에 포함되어 있지 않다면 -1을 출 www.acmicpc.net 나의코드 import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.IOException; public class Main{ public static void main(String[] args) throws IOException{ BufferedReader br = new BufferedRea.. 2023. 3. 18.
[BOJ] 백준 11720번: 숫자의 합 (Java) 문제링크 https://www.acmicpc.net/problem/11720 11720번: 숫자의 합 첫째 줄에 숫자의 개수 N (1 ≤ N ≤ 100)이 주어진다. 둘째 줄에 숫자 N개가 공백없이 주어진다. www.acmicpc.net 나의코드 import java.util.Scanner; public class Main{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); int n = sc.nextInt(); String num = sc.next(); sc.close(); int sum = 0; for(int i = 0; i < n; i++){ sum = sum + num.charAt(i) - '0'; } Syst.. 2023. 3. 17.
[BOJ] 백준 11654번: 아스키 코드 (Java) 문제링크 https://www.acmicpc.net/problem/11654 11654번: 아스키 코드 알파벳 소문자, 대문자, 숫자 0-9중 하나가 주어졌을 때, 주어진 글자의 아스키 코드값을 출력하는 프로그램을 작성하시오. www.acmicpc.net 나의코드 import java.io.IOException; public class Main{ public static void main(String[] args) throws IOException{ int a = System.in.read(); System.out.print(a); } } 2023. 3. 16.
[BOJ] 백준 1065번: 한수 (Java) 문제링크 https://www.acmicpc.net/problem/1065 1065번: 한수 어떤 양의 정수 X의 각 자리가 등차수열을 이룬다면, 그 수를 한수라고 한다. 등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다. N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나 www.acmicpc.net 나의코드 import java.util.Scanner; public class Main{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); System.out.print(arithmetic_sequence(sc.nextInt())); sc.close(); } public static int arithmet.. 2023. 3. 15.
[BOJ] 백준 4673번: 셀프 넘버 (Java) 문제링크 https://www.acmicpc.net/problem/4673 4673번: 셀프 넘버 셀프 넘버는 1949년 인도 수학자 D.R. Kaprekar가 이름 붙였다. 양의 정수 n에 대해서 d(n)을 n과 n의 각 자리수를 더하는 함수라고 정의하자. 예를 들어, d(75) = 75+7+5 = 87이다. 양의 정수 n이 주어졌을 때, www.acmicpc.net 나의코드 import java.util.*; public class Main{ public static void main(String[] args){ boolean[] answer = new boolean[10001]; for(int i = 1; i < 10001; i++){ int n = d(i); if(n < 10001){ answer.. 2023. 3. 14.
[BOJ] 백준 15596번: 정수 N개의 합 (Java) 문제링크 https://www.acmicpc.net/problem/15596 15596번: 정수 N개의 합 C++17, Java 8, Python 3, C11, PyPy3, C99, C++98, C++11, C++14, Go, C99 (Clang), C++98 (Clang), C++11 (Clang), C++14 (Clang), C11 (Clang), C++17 (Clang) www.acmicpc.net 나의코드 public class Test { long sum(int[] a) { long ans = 0; for(int i = 0; i < a.length; i++){ ans = ans + a[i]; } return ans; } } 2023. 3. 13.
[BOJ] 백준 4344번: 평균은 넘겠지 (Java) 문제링크 https://www.acmicpc.net/problem/4344 4344번: 평균은 넘겠지 대학생 새내기들의 90%는 자신이 반에서 평균은 넘는다고 생각한다. 당신은 그들에게 슬픈 진실을 알려줘야 한다. www.acmicpc.net 나의코드 import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.IOException; import java.util.StringTokenizer; public class Main{ public static void main(String[] args) throws IOException{ BufferedReader br = new BufferedReader(new InputStre.. 2023. 3. 12.
[BOJ] 백준 8958번: OX퀴즈 (Java) 문제링크 https://www.acmicpc.net/problem/8958 8958번: OX퀴즈 "OOXXOXXOOO"와 같은 OX퀴즈의 결과가 있다. O는 문제를 맞은 것이고, X는 문제를 틀린 것이다. 문제를 맞은 경우 그 문제의 점수는 그 문제까지 연속된 O의 개수가 된다. 예를 들어, 10번 문제의 점수 www.acmicpc.net 나의코드 import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.IOException; public class Main{ public static void main(String[] args) throws IOException{ BufferedReader br = new Buffere.. 2023. 3. 11.
[BOJ] 백준 1546번: 평균 (Java) 문제링크 https://www.acmicpc.net/problem/1546 1546번: 평균 첫째 줄에 시험 본 과목의 개수 N이 주어진다. 이 값은 1000보다 작거나 같다. 둘째 줄에 세준이의 현재 성적이 주어진다. 이 값은 100보다 작거나 같은 음이 아닌 정수이고, 적어도 하나의 값은 0보 www.acmicpc.net 나의코드 import java.util.Arrays; import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.IOException; import java.util.StringTokenizer; public class Main{ public static void main(String[] args) .. 2023. 3. 10.
[BOJ] 백준 3052번: 나머지 (Java) 문제링크 https://www.acmicpc.net/problem/3052 3052번: 나머지 각 수를 42로 나눈 나머지는 39, 40, 41, 0, 1, 2, 40, 41, 0, 1이다. 서로 다른 값은 6개가 있다. www.acmicpc.net 나의코드 import java.util.Scanner; public class Main{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); boolean[] arr = new boolean[42]; int count = 0; for(int i = 0; i < 10; i++){ arr[sc.nextInt() % 42] = true; } for(boolean value : a.. 2023. 3. 9.
[BOJ] 백준 5597번: 과제 안 내신 분..? (Java) 문제링크 https://www.acmicpc.net/problem/5597 5597번: 과제 안 내신 분..? X대학 M교수님은 프로그래밍 수업을 맡고 있다. 교실엔 학생이 30명이 있는데, 학생 명부엔 각 학생별로 1번부터 30번까지 출석번호가 붙어 있다. 교수님이 내준 특별과제를 28명이 제출했는데, www.acmicpc.net 나의코드 import java.util.Scanner; public class Main{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); int[] arr = new int[30]; int j; for(int i = 0; i < 28; i++){ j = sc.nextInt(); arr[j.. 2023. 3. 8.
[BOJ] 백준 2562번 최댓값 (Java) 문제링크 https://www.acmicpc.net/problem/2562 2562번: 최댓값 9개의 서로 다른 자연수가 주어질 때, 이들 중 최댓값을 찾고 그 최댓값이 몇 번째 수인지를 구하는 프로그램을 작성하시오. 예를 들어, 서로 다른 9개의 자연수 3, 29, 38, 12, 57, 74, 40, 85, 61 이 주어 www.acmicpc.net 나의코드 import java.util.Scanner; public class Main{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); int[] arr = new int[9]; for(int i = 0; i < 9; i++){ arr[i] = sc.nextInt().. 2023. 3. 7.
[BOJ] 백준 10818번 최소, 최대 (Java) 문제링크 https://www.acmicpc.net/problem/10818 10818번: 최소, 최대 첫째 줄에 정수의 개수 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 N개의 정수를 공백으로 구분해서 주어진다. 모든 정수는 -1,000,000보다 크거나 같고, 1,000,000보다 작거나 같은 정수이다. www.acmicpc.net 나의코드 import java.util.Scanner; public class Main{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); int N = sc.nextInt(); int[] arr = new int[N]; for(int i = 0; i < N; i++.. 2023. 3. 6.
[BOJ] 백준 10871번 X보다 작은 수 (Java) 문제링크 https://www.acmicpc.net/problem/10871 10871번: X보다 작은 수 첫째 줄에 N과 X가 주어진다. (1 ≤ N, X ≤ 10,000) 둘째 줄에 수열 A를 이루는 정수 N개가 주어진다. 주어지는 정수는 모두 1보다 크거나 같고, 10,000보다 작거나 같은 정수이다. www.acmicpc.net 나의코드 import java.util.Scanner; public class Main{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); int N = sc.nextInt(); int X = sc.nextInt(); int[] arr = new int[N]; for(int i = 0;.. 2023. 2. 1.
[BOJ] 백준 10807번 개수 세기 (Java) 문제링크 https://www.acmicpc.net/problem/10807 10807번: 개수 세기 첫째 줄에 정수의 개수 N(1 ≤ N ≤ 100)이 주어진다. 둘째 줄에는 정수가 공백으로 구분되어져있다. 셋째 줄에는 찾으려고 하는 정수 v가 주어진다. 입력으로 주어지는 정수와 v는 -100보다 크거 www.acmicpc.net 나의코드 import java.util.Scanner; public class Main{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); int num = sc.nextInt(); int[] array = new int[num]; int count = 0; for(int i = 0; i .. 2023. 1. 31.
[BOJ] 백준 1110번 더하기 사이클 (Java) 문제링크 https://www.acmicpc.net/problem/1110 1110번: 더하기 사이클 0보다 크거나 같고, 99보다 작거나 같은 정수가 주어질 때 다음과 같은 연산을 할 수 있다. 먼저 주어진 수가 10보다 작다면 앞에 0을 붙여 두 자리 수로 만들고, 각 자리의 숫자를 더한다. 그 다음, www.acmicpc.net 나의코드 import java.util.Scanner; public class Main{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); int num = sc.nextInt(); sc.close(); int a = num; int count = 0; while(true){ a = ((.. 2023. 1. 30.
[BOJ] 백준 10951번 A+B - 4 (Java) 문제링크 https://www.acmicpc.net/problem/10951 10951번: A+B - 4 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. www.acmicpc.net 나의코드 import java.util.Scanner; public class Main{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); while(sc.hasNextInt()){ int a = sc.nextInt(); int b = sc.nextInt(); System.out.println(a + b); } sc.close(); } } 2023. 1. 29.
[BOJ] 백준 10952번 A+B - 5 (Java) 문제링크 https://www.acmicpc.net/problem/10952 10952번: A+B - 5 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. www.acmicpc.net 나의코드 import java.util.Scanner; public class Main{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); while(true){ int a = sc.nextInt(); int b = sc.nextInt(); if((a == 0) && (b == 0)){ sc.close(); break; } System.out.println(a + b); } } } 2023. 1. 28.
[BOJ] 백준 2439번 별 찍기 - 2 (Java) 문제링크 https://www.acmicpc.net/problem/2439 2439번: 별 찍기 - 2 첫째 줄에는 별 1개, 둘째 줄에는 별 2개, N번째 줄에는 별 N개를 찍는 문제 하지만, 오른쪽을 기준으로 정렬한 별(예제 참고)을 출력하시오. www.acmicpc.net 나의코드 import java.util.Scanner; public class Main{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); int num = sc.nextInt(); sc.close(); for(int i = 1; i i; k--){ System.out.print(" "); } for(int j = 1; j 2023. 1. 27.
[BOJ] 백준 2438번 별 찍기 - 1 (Java) 문제링크 https://www.acmicpc.net/problem/2438 2438번: 별 찍기 - 1 첫째 줄에는 별 1개, 둘째 줄에는 별 2개, N번째 줄에는 별 N개를 찍는 문제 www.acmicpc.net 나의코드 import java.util.Scanner; public class Main{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); int num = sc.nextInt(); sc.close(); for(int i = 1; i 2023. 1. 26.
[도메인 주도 개발 시작하기] Chapter 2. 아키텍처 개요 2.1 네 개의 영역 '표현', '응용', '도메인', '인프타스트럭처'는 아키텍처를 설계할 때 출현하는 전형적인 네 가지 영역이다. 표현 영역은 사용자의 요청을 받아 응용 영역에 전달하고 응용 영역의 처리 결과를 다시 사용자에게 보여주는 역할을 한다. 스프링 MVC 프레임워크가 표현 영역을 위한 기술에 해당한다. 웹 애플리케이션의 표현 영역은 HTTP 요청을 응용 영역이 필요로 하는 형식으로 변환해서 응용 영역에 적달하고 응용 영역의 응답을 HTTP 응답으로 변환하여 전송한다. 표현 영역을 통해 사용자의 요청을 전달받은 응용 영역은 시스템이 사용자에게 제공해야 할 기능을 구현하는데 '주문 등록', '주문 취소', '상품 상세 조회'와 같은 기능 구현을 예로 들 수 있다. 응용 서비스는 로직을 직접 수행.. 2023. 1. 13.
[도메인 주도 개발 시작하기] Chapter 1. 도메인 모델 시작하기 1.1 도메인이란? 도메인은 소프트웨어로 해결하고자 하는 문제 영역을 말한다. 한 도메인은 다시 하위 도메인으로 나눌 수 있다. 예를 들어 온라인 서점이라는 도메인은 주문, 배송, 혜택 등 하위 도메인으로 나눌 수 있다. 특정 도메인을 위한 소프트웨어라고 해서 도메인이 제공해야 할 모든 기능을 직접 구현하는 것은 아니다. 예를 들어 온라인 쇼핑몰이 외부 배송 업체의 시스템을 사용하고 배송 추적 정보를 제공하는 데 필요한 기능만 일부 연동하는 것처럼 말이다. 결제 시스템도 직접 구현하기보다는 결제 대행업체를 이용해서 처리할 경우가 많다. 1.2 도메인 전문가와 개발자 간 지식 공유 온라인 홍보, 정산, 배송 등 각 영역에는 전문가가 있다. 전문가들은 해당 도메인에 대한 지식과 경험을 바탕으로 본인들이 원하.. 2023. 1. 12.
[BOJ] 백준 11022번 A+B - 8 (Java) 문제링크 https://www.acmicpc.net/problem/11022 11022번: A+B - 8 각 테스트 케이스마다 "Case #x: A + B = C" 형식으로 출력한다. x는 테스트 케이스 번호이고 1부터 시작하며, C는 A+B이다. www.acmicpc.net 나의코드 import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.util.StringTokenizer; public class Main{ public static void main(St.. 2023. 1. 9.
[BOJ] 백준 11021번 A+B - 7 (Java) 문제링크 https://www.acmicpc.net/problem/11021 11021번: A+B - 7 각 테스트 케이스마다 "Case #x: "를 출력한 다음, A+B를 출력한다. 테스트 케이스 번호는 1부터 시작한다. www.acmicpc.net 나의코드 import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.util.StringTokenizer; public class Main{ public static void main(String[] args) t.. 2023. 1. 8.
[BOJ] 백준 15552번 빠른 A+B (Java) 문제링크 https://www.acmicpc.net/problem/15552 15552번: 빠른 A+B 첫 줄에 테스트케이스의 개수 T가 주어진다. T는 최대 1,000,000이다. 다음 T줄에는 각각 두 정수 A와 B가 주어진다. A와 B는 1 이상, 1,000 이하이다. www.acmicpc.net 나의코드 import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.util.StringTokenizer; public class Main{ public stat.. 2023. 1. 7.
[BOJ] 백준 25304번 영수증 (Java) 문제링크 https://www.acmicpc.net/problem/25304 25304번: 영수증 준원이는 저번 주에 살면서 처음으로 코스트코를 가 봤다. 정말 멋졌다. 그런데, 몇 개 담지도 않았는데 수상하게 높은 금액이 나오는 것이다! 준원이는 영수증을 보면서 정확하게 계산된 것 www.acmicpc.net 나의코드 import java.util.Scanner; public class Main{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); int money = sc.nextInt(); int count = sc.nextInt(); int result = 0; for(int i = 0; i < count; i+.. 2023. 1. 6.
[BOJ] 백준 8393번 합 (Java) 문제링크 https://www.acmicpc.net/problem/8393 8393번: 합 n이 주어졌을 때, 1부터 n까지 합을 구하는 프로그램을 작성하시오. www.acmicpc.net 나의코드 import java.util.Scanner; public class Main{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); int n = sc.nextInt(); sc.close(); int result = 0; for(int i = 1; i < n + 1 ; i++){ result = result + i; } System.out.print(result); } } 2023. 1. 5.
[BOJ] 백준 10950번 A+B - 3 (Java) 문제링크 https://www.acmicpc.net/problem/10950 10950번: A+B - 3 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. www.acmicpc.net 나의코드 import java.util.Scanner; public class Main{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); int num = sc.nextInt(); for(int i = 0; i < num; i++){ int a = sc.nextInt(); int b = sc.nextInt(); System.out.println(a + b); } } } 2023. 1. 4.