본문 바로가기

전체 게시글376

[BaekJoon] 백준 알고리즘 1157번 / 단어 공부 문제 알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다. 입력 첫째 줄에 알파벳 대소문자로 이루어진 단어가 주어진다. 주어지는 단어의 길이는 1,000,000을 넘지 않는다. 출력 첫째 줄에 이 단어에서 가장 많이 사용된 알파벳을 대문자로 출력한다. 단, 가장 많이 사용된 알파벳이 여러 개 존재하는 경우에는 ?를 출력한다. 접근방법 알파벳 A - Z , 단어의 갯수만큼의 배열을 선언한다. 위 배열은 문장에서 사용된 알파벳 갯수를 카운팅하는데 사용한다. 알파벳의 대문자 아스키 코드 값은 65 ~ 90이고, 소문자는 97 ~ 122 이다. 위 내용을 기반으로 대소문자로 이루어진 단어(문자열)을 입력받.. 2023. 2. 21.
[BaekJoon] 백준 알고리즘 2675번 / 문자열 반복 문제 문자열 S를 입력받은 후에, 각 문자를 R번 반복해 새 문자열 P를 만든 후 출력하는 프로그램을 작성하시오. 즉, 첫 번째 문자를 R번 반복하고, 두 번째 문자를 R번 반복하는 식으로 P를 만들면 된다. S에는 QR Code "alphanumeric" 문자만 들어있다. QR Code "alphanumeric" 문자는 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ\$%*+-./: 이다. 입력 첫째 줄에 테스트 케이스의 개수 T(1 ≤ T ≤ 1,000)가 주어진다. 각 테스트 케이스는 반복 횟수 R(1 ≤ R ≤ 8), 문자열 S가 공백으로 구분되어 주어진다. S의 길이는 적어도 1이며, 20글자를 넘지 않는다. 출력 각 테스트 케이스에 대해 P를 출력한다. 접근방법 테스트 케이스.. 2023. 2. 20.
[BaekJoon] 백준 알고리즘 11720번 / 숫자의 합 문제 N개의 숫자가 공백 없이 쓰여있다. 이 숫자를 모두 합해서 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 숫자의 개수 N (1 ≤ N ≤ 100)이 주어진다. 둘째 줄에 숫자 N개가 공백없이 주어진다. 출력 입력으로 주어진 숫자 N개의 합을 출력한다. 접근방법 숫자의 갯수를 입력받는다. 입력받은 숫자 갯수만큼의 0 ~ 9까지의 숫자가 조합된 문자열을 입력받는다. 이를 split() 메서드를 활용해서 배열에 저장한다. 배열을 순회하면서 합산 결과를 출력한다. import java.util.Scanner; public class Number11720 { public static void main(String[] args) { Scanner scan = new Scanner(System.in); int.. 2023. 2. 20.
[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.