본문 바로가기

Algorithm42

[BaekJoon] 백준 알고리즘 1065번 / 한수 문제 어떤 양의 정수 X의 각 자리가 등차수열을 이룬다면, 그 수를 한수라고 한다. 등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다. N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나 같은 한수의 개수를 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 1,000보다 작거나 같은 자연수 N이 주어진다. 출력 첫째 줄에 1보다 크거나 같고, N보다 작거나 같은 한수의 개수를 출력한다. 접근방법 등차수열은 연속하는 두 항의 차이가 모두 일정한 수열을 의미한다. 두항의 차이를 d라고 할때, n번쨰 항은 초항과 (n-1) * d의 합과 같다. 문제를 이해하면, 1 ~ 99는 모두 등차 수열이다. 따라서, 우리가 확인해야할 수는 100보다 큰수만 잘 확인하면 된다. 1) 함수를 하나 만들자. 2).. 2023. 2. 20.
[BaekJoon] 백준 알고리즘 4673번 / 셀프 넘버 문제 셀프 넘버는 1949년 인도 수학자 D.R. Kaprekar가 이름 붙였다. 양의 정수 n에 대해서 d(n)을 n과 n의 각 자리수를 더하는 함수라고 정의하자. 예를 들어, d(75) = 75+7+5 = 87이다. 양의 정수 n이 주어졌을 때, 이 수를 시작해서 n, d(n), d(d(n)), d(d(d(n))), ...과 같은 무한 수열을 만들 수 있다. 예를 들어, 33으로 시작한다면 다음 수는 33 + 3 + 3 = 39이고, 그 다음 수는 39 + 3 + 9 = 51, 다음 수는 51 + 5 + 1 = 57이다. 이런식으로 다음과 같은 수열을 만들 수 있다. 33, 39, 51, 57, 69, 84, 96, 111, 114, 120, 123, 129, 141, ... n을 d(n)의 생성자라.. 2023. 2. 19.
[BaekJoon] 백준 알고리즘 4344번 / 평균은 넘겠지 문제 대학생 새내기들의 90%는 자신이 반에서 평균은 넘는다고 생각한다. 당신은 그들에게 슬픈 진실을 알려줘야 한다. 입력 첫째 줄에는 테스트 케이스의 개수 C가 주어진다. 둘째 줄부터 각 테스트 케이스마다 학생의 수 N(1 ≤ N ≤ 1000, N은 정수)이 첫 수로 주어지고, 이어서 N명의 점수가 주어진다. 점수는 0보다 크거나 같고, 100보다 작거나 같은 정수이다. 출력 각 케이스마다 한 줄씩 평균을 넘는 학생들의 비율을 반올림하여 소수점 셋째 자리까지 출력한다. 접근방법 테스트 케이스 갯수를 변수 rowNumber에 대입한다. 테스트 케이스 갯수 만큼 전체 for문을 반복한다. 케이스 별 학생의 수를 변수 caseNumber에 대입한다. N명의 점수를 배열 studentScores에 대입한다. .. 2023. 2. 19.
[BaekJoon] 백준 알고리즘 8958번 / OX퀴즈 문제 "OOXXOXXOOO"와 같은 OX퀴즈의 결과가 있다. O는 문제를 맞은 것이고, X는 문제를 틀린 것이다. 문제를 맞은 경우 그 문제의 점수는 그 문제까지 연속된 O의 개수가 된다. 예를 들어, 10번 문제의 점수는 3이 된다. "OOXXOXXOOO"의 점수는 1+2+0+0+1+0+0+1+2+3 = 10점이다. OX퀴즈의 결과가 주어졌을 때, 점수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 테스트 케이스의 개수가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 길이가 0보다 크고 80보다 작은 문자열이 주어진다. 문자열은 O와 X만으로 이루어져 있다. 출력 각 테스트 케이스마다 점수를 출력한다. 접근방법 변수를 두개 준비한다. 하나의 변수에는 연속되는 O의 갯수를 카운팅하고, 다른 하.. 2023. 2. 19.
[BaekJoon] 백준 알고리즘 5597번 / 과제 안 내신 분..? 문제 X대학 M교수님은 프로그래밍 수업을 맡고 있다. 교실엔 학생이 30명이 있는데, 학생 명부엔 각 학생별로 1번부터 30번까지 출석번호가 붙어 있다. 교수님이 내준 특별과제를 28명이 제출했는데, 그 중에서 제출 안 한 학생 2명의 출석번호를 구하는 프로그램을 작성하시오. 입력 입력은 총 28줄로 각 제출자(학생)의 출석번호 n(1 ≤ n ≤ 30)가 한 줄에 하나씩 주어진다. 출석번호에 중복은 없다. 출력 출력은 2줄이다. 1번째 줄엔 제출하지 않은 학생의 출석번호 중 가장 작은 것을 출력하고, 2번째 줄에선 그 다음 출석번호를 출력한다. 접근방법 크기가 30인 배열을 만든다. 입력받은 수를 배열을 idx로 간주한다. 따라서, 입력받았다는 표시를 해둔다. 표시 후, 배열 전체를 순회하면서 값이 다른.. 2023. 2. 19.
[BaekJoon] 백준 알고리즘 1000번 1. 문제 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. 2. 입력 첫째 줄에 A와 B가 주어진다. (0 < A, B < 10) 3. 출력 첫째 줄에 A+B를 출력한다. 4. 제출 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); int A = scan.nextInt(); int B = scan.nextInt(); System.out.println(A+B); scan.close(); } } 5. 풀이 방법 자바의 입력기능인 Scanner를 이용해서 문제를 푼다. * 자바에서 데이터를 출력하는 명령은 S.. 2022. 8. 24.