본문 바로가기

전체 글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.
[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.
Dummy Data 생성을 위한 코드 우선, 더미 데이터가 어떻게 저장되었는지 사진을 통해 확인해보겠습니다. Member 테이블 Board 테이블 Comment 테이블 Image 테이블 Membership 테이블 Review 테이블 Reaction 테이블 java.util.Arrays 에 대한 설명.. Arrays 클래스에는 배열을 다루기 위한 다양한 메서드가 포함되어 있다. Arrays 클래스의 모든 메서드는 클래스 메서드(Static method) 이므로, 객체를 생성하지 않고도 바로 사용 가능함. 주요 메서드는, asList() : 전달받은 배열을 고정 크기의 리스트(list)로 변환하여 리턴합니다. 위와 같이 리스트를 생성한 후 순서를 막 섞는 방법이 있는데, Java에서는 리스트를 섞는 방법을 내장 객체를 통해서 제공합니다. Col.. 2023. 2. 18.