알고리즘/백준 문제 및 정답
5단계 문제 번호 1065번 : 한수 - JAVA [자바]
5단계 문제 번호 1065번 : 한수 - JAVA [자바]
2021.12.19https://www.acmicpc.net/problem/1065 1065번: 한수 어떤 양의 정수 X의 각 자리가 등차수열을 이룬다면, 그 수를 한수라고 한다. 등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다. N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나 www.acmicpc.net 생각보다 백준 문제에서 자리수 관련 문제가 많이 나오네요. 99까지는 개수를 계속 늘려주고 세자리 부터는 각 자리수가 빼서 같은 수가 나온것만 개수를 늘려주었습니다. 정답 import java.util.*; public class Main{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); int n = sc.ne..
5단계 문제 번호 4673번 : 셀프 넘버 - JAVA [자바]
5단계 문제 번호 4673번 : 셀프 넘버 - JAVA [자바]
2021.12.18https://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 ListArray를 사용하여 함수 관련된 모든 수를 저장한 후 1~10000까지의 모든 숫자를 ListArray 안에 있는 숫자와 비교하여 출력하는 방법으로 해결하였습니다. 정답 import java.util.*; public class Main{ public static void main(String[] args){ ArrayList array ..
5단계 문제 번호 15596번 : 정수 N개의 합 - JAVA [자바]
5단계 문제 번호 15596번 : 정수 N개의 합 - JAVA [자바]
2021.12.16https://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..
4단계 문제 번호 4344번 : 평균은 넘겠지 - JAVA [자바]
4단계 문제 번호 4344번 : 평균은 넘겠지 - JAVA [자바]
2021.12.16https://www.acmicpc.net/problem/4344 4344번: 평균은 넘겠지 대학생 새내기들의 90%는 자신이 반에서 평균은 넘는다고 생각한다. 당신은 그들에게 슬픈 진실을 알려줘야 한다. www.acmicpc.net 평균이 넘는 학생을 퍼센트로 만들어주면 되는 간단한 문제입니다. 정답 import java.util.*; public class Main{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); int testNum = sc.nextInt(); for(int i = 0; i < testNum; i++) { int scoreSum = 0; int scoreCount = sc.nextInt(); ..
4단계 문제 번호 3052번 : 나머지 - JAVA [자바]
4단계 문제 번호 3052번 : 나머지 - JAVA [자바]
2021.12.15https://www.acmicpc.net/problem/3052 3052번: 나머지 각 수를 42로 나눈 나머지는 39, 40, 41, 0, 1, 2, 40, 41, 0, 1이다. 서로 다른 값은 6개가 있다. www.acmicpc.net 나머지를 배열에다 넣은 후 중복제거한 후의 총 개수를 물어보는 문제입니다. 서로 다른 값이라는 뜻을 몰라서 한참 고민했습니다. 나머지 배열을 하나씩 비교해 같은 값이면 나머지가 될 수 없는 -1로 변경하여 -1이 아닌 개수를 구해 결과를 출력하도록 하였습니다. 정답 import java.util.*; public class Main{ public static void main(String[] args){ Scanner sc = new Scanner(System.in)..
4단계 문제 번호 10818번 : 최소, 최대 - JAVA [자바]
4단계 문제 번호 10818번 : 최소, 최대 - JAVA [자바]
2021.12.15https://www.acmicpc.net/problem/10818 10818번: 최소, 최대 첫째 줄에 정수의 개수 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 N개의 정수를 공백으로 구분해서 주어진다. 모든 정수는 -1,000,000보다 크거나 같고, 1,000,000보다 작거나 같은 정수이다. www.acmicpc.net 사용 언어 : Java 11 배열을 사용하여 최소 최대를 구하는 간단한 문제입니다. "N개의 정수를 공백으로 입력받는다"에서 StringTokenizer을 사용하여 해결했습니다.(공백으로 받지 않아도 문제는 정답으로 되는거 같습니다.) split를 사용할려 했지만 StringTokenizer을 알고 있지만 사용을 한번도 못해봐서 이번 기회에 사용해 봤습니다. S..
4단계 문제 번호 1110번 : 더하기 사이클 - JAVA [자바]
4단계 문제 번호 1110번 : 더하기 사이클 - JAVA [자바]
2021.12.14https://www.acmicpc.net/problem/1110 1110번: 더하기 사이클 0보다 크거나 같고, 99보다 작거나 같은 정수가 주어질 때 다음과 같은 연산을 할 수 있다. 먼저 주어진 수가 10보다 작다면 앞에 0을 붙여 두 자리 수로 만들고, 각 자리의 숫자를 더한다. 그 다음, www.acmicpc.net 사용 언어 : Java 11 조금 시간이 걸렸습니다. 수식을 하나로 만들면 훨씬 편하다는 걸 나중에 알았습니다. 가끔 시간 초과라는 에러가 뜨는데 코드가 무한루프를 돌면 그런 에러가 뜨는거 같습니다. 코드를 먼저 실행하여 확인 후 제출하면 됩니다. 정답 import java.util.*; public class Main{ public static void main(String[] a..
3단계 문제 번호 10871번 : X보다 작은 수 - JAVA [자바]
3단계 문제 번호 10871번 : X보다 작은 수 - JAVA [자바]
2021.12.13https://www.acmicpc.net/problem/10871 10871번: X보다 작은 수 첫째 줄에 N과 X가 주어진다. (1 ≤ N, X ≤ 10,000) 둘째 줄에 수열 A를 이루는 정수 N개가 주어진다. 주어지는 정수는 모두 1보다 크거나 같고, 10,000보다 작거나 같은 정수이다. www.acmicpc.net 사용 언어 : Java 11 그냥 배열로 할 수 있지만 요즘 배열 잘 사용을 안해서 ArrayList를 사용해서 해결하였습니다. 정답 import java.util.*; public class Main{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); ArrayList a = new Array..
3단계 문제 번호 11021번 : A+B - 7 - JAVA [자바]
3단계 문제 번호 11021번 : A+B - 7 - JAVA [자바]
2021.12.13https://www.acmicpc.net/problem/11021 11021번: A+B - 7 각 테스트 케이스마다 "Case #x: "를 출력한 다음, A+B를 출력한다. 테스트 케이스 번호는 1부터 시작한다. www.acmicpc.net 사용 언어 : Java 11 for문을 이해하고 있는지 확인하는 문제입니다. System.out.println에서 + 사용하면 정수형 변수도 String으로 자동 형변환 되어서 덧셈이 안되는 상황이 있습니다. 이때 (int)로 형변환을 해주어야 합니다. 정답 import java.util.*; public class Main{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); i..
3단계 문제 번호 2793번 : 구구단 - JAVA [자바]
3단계 문제 번호 2793번 : 구구단 - JAVA [자바]
2021.12.10https://www.acmicpc.net/problem/2739 2739번: 구구단 N을 입력받은 뒤, 구구단 N단을 출력하는 프로그램을 작성하시오. 출력 형식에 맞춰서 출력하면 된다. www.acmicpc.net 사용 언어 : Java 11 for문을 이해하고 있는지를 물어보는 문제입니다. 정답 import java.util.*; public class Main{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); int N; N = sc.nextInt(); for(int i = 1; i < 10; i++){ System.out.println(N + " * " + i + " = " + N*i); } } }
2단계 문제 번호 2884번 : 알람 시계 - JAVA [자바]
2단계 문제 번호 2884번 : 알람 시계 - JAVA [자바]
2021.12.10https://www.acmicpc.net/problem/2884 2884번: 알람 시계 상근이는 매일 아침 알람을 듣고 일어난다. 알람을 듣고 바로 일어나면 다행이겠지만, 항상 조금만 더 자려는 마음 때문에 매일 학교를 지각하고 있다. 상근이는 모든 방법을 동원해보았지만, www.acmicpc.net 사용 언어 : Java 11 시간을 계산하는 것을 코딩으로 표현 할 수 있는지 물어보는 문제입니다. 일상생활의 계산하는 것을 조건문의 로직으로 코딩을 할 수 있는지 확인하는 것 같습니다. 정답 import java.util.*; public class Main{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); int ..
2단계 문제 번호 2753번 : 윤년 - JAVA [자바]
2단계 문제 번호 2753번 : 윤년 - JAVA [자바]
2021.12.10https://www.acmicpc.net/problem/2753 2753번: 윤년 연도가 주어졌을 때, 윤년이면 1, 아니면 0을 출력하는 프로그램을 작성하시오. 윤년은 연도가 4의 배수이면서, 100의 배수가 아닐 때 또는 400의 배수일 때이다. 예를 들어, 2012년은 4의 배수이면서 www.acmicpc.net 사용 언어 : Java 11 조건문에서 and와 or 조건을 사용할 수 있는지 확인하는 문제입니다. 정답 import java.util.*; public class Main{ public static void main(String[] args){ int year; Scanner sc = new Scanner(System.in); year = sc.nextInt(); if((year%4 =..