아나그램
·
algorithm
설명Anagram이란 두 문자열이 알파벳의 나열 순서를 다르지만 그 구성이 일치하면 두 단어는 아나그램이라고 합니다.예를 들면 AbaAeCe 와 baeeACA 는 알파벳을 나열 순서는 다르지만 그 구성을 살펴보면 A(2), a(1), b(1), C(1), e(2)로알파벳과 그 개수가 모두 일치합니다. 즉 어느 한 단어를 재 배열하면 상대편 단어가 될 수 있는 것을 아나그램이라 합니다.길이가 같은 두 개의 단어가 주어지면 두 단어가 아나그램인지 판별하는 프로그램을 작성하세요. 아나그램 판별시 대소문자가 구분됩니다. 입력첫 줄에 첫 번째 단어가 입력되고, 두 번째 줄에 두 번째 단어가 입력됩니다.단어의 길이는 100을 넘지 않습니다. 출력두 단어가 아나그램이면 “YES"를 출력하고, 아니면 ”NO"를 출력합..
학급 회장 / HashMap 정리
·
algorithm
설명학급 회장을 뽑는데 후보로 기호 A, B, C, D, E 후보가 등록을 했습니다.투표용지에는 반 학생들이 자기가 선택한 후보의 기호(알파벳)가 쓰여 있으며 선생님은 그 기호를 발표하고 있습니다.선생님의 발표가 끝난 후 어떤 기호의 후보가 학급 회장이 되었는지 출력하는 프로그램을 작성하세요.반드시 한 명의 학급회장이 선출되도록 투표결과가 나왔다고 가정합니다. 입력첫 줄에는 반 학생수 N(5두 번째 줄에 N개의 투표용지에 쓰여져 있던 각 후보의 기호가 선생님이 발표한 순서대로 문자열로 입력됩니다. 출력학급 회장으로 선택된 기호를 출력합니다.예시 입력 1 15BACBACCACCBDEDE 예시 출력 1C 소스 코드import java.util.HashMap;import java.util.Scanner;pub..
최대 길이 연속부분수열
·
algorithm
설명0과 1로 구성된 길이가 N인 수열이 주어집니다. 여러분은 이 수열에서 최대 k번을 0을 1로 변경할 수 있습니다. 여러분이 최대 k번의 변경을 통해 이 수열에서 1로만 구성된 최대 길이의 연속부분수열을 찾는 프로그램을 작성하세요.만약 길이가 길이가 14인 다음과 같은 수열이 주어지고 k=2라면1 1 0 0 1 1 0 1 1 0 1 1 0 1여러분이 만들 수 있는 1이 연속된 연속부분수열은이며 그 길이는 8입니다. 입력첫 번째 줄에 수열의 길이인 자연수 N(5두 번째 줄에 N길이의 0과 1로 구성된 수열이 주어집니다. 출력첫 줄에 최대 길이를 출력하세요.예시 입력 1 14 21 1 0 0 1 1 0 1 1 0 1 1 0 1 예시 출력 18 소스 코드 import java.util.Scanner;pub..
연속된 자연수의 합
·
algorithm
설명N입력으로 양의 정수 N이 입력되면 2개 이상의 연속된 자연수의 합으로 정수 N을 표현하는 방법의 가짓수를 출력하는 프로그램을 작성하세요.만약 N=15이면7+8=154+5+6=151+2+3+4+5=15와 같이 총 3가지의 경우가 존재한다. 입력첫 번째 줄에 양의 정수 N(7 출력첫 줄에 총 경우수를 출력합니다.예시 입력 1 15 예시 출력 13 소스 코드 1import java.util.Scanner;public class Main { public static int solution(int N) { int ans = 0; //2개의 자연수를 뽑아 답을 구한다해도 홀수의 경우 (N/2)+(N/2+1) 의 경우가 최대이므로 N/2+1까지만 루프 for (int ..
연속 부분수열
·
algorithm
설명N개의 수로 이루어진 수열이 주어집니다.이 수열에서 연속부분수열의 합이 특정숫자 M이 되는 경우가 몇 번 있는지 구하는 프로그램을 작성하세요.만약 N=8, M=6이고 수열이 다음과 같다면1 2 1 3 1 1 1 2합이 6이 되는 연속부분수열은 {2, 1, 3}, {1, 3, 1, 1}, {3, 1, 1, 1}로 총 3가지입니다. 입력첫째 줄에 N(1≤N≤100,000), M(1≤M≤100,000,000)이 주어진다.수열의 원소값은 1,000을 넘지 않는 자연수이다. 출력첫째 줄에 경우의 수를 출력한다.예시 입력 1 8 61 2 1 3 1 1 1 2 예시 출력 13 소스 코드1import java.util.Scanner;public class Main { public static int solut..
최대 매출
·
algorithm
설명현수의 아빠는 제과점을 운영합니다. 현수 아빠는 현수에게 N일 동안의 매출기록을 주고 연속된 K일 동안의 최대 매출액이 얼마인지 구하라고 했습니다.만약 N=10이고 10일 간의 매출기록이 아래와 같습니다. 이때 K=3이면12 1511 20 2510 20 19 13 15연속된 3일간의 최대 매출액은 11+20+25=56만원입니다.여러분이 현수를 도와주세요. 입력첫 줄에 N(5두 번째 줄에 N개의 숫자열이 주어집니다. 각 숫자는 500이하의 음이 아닌 정수입니다. 출력첫 줄에 최대 매출액을 출력합니다.예시 입력 1 10 312 15 11 20 25 10 20 19 13 15 예시 출력 156 소스 코드1import java.util.Scanner;//최대 매출public class Main { pu..
공통원소 구하기
·
algorithm
설명A, B 두 개의 집합이 주어지면 두 집합의 공통 원소를 추출하여 오름차순으로 출력하는 프로그램을 작성하세요. 입력첫 번째 줄에 집합 A의 크기 N(1두 번째 줄에 N개의 원소가 주어집니다. 원소가 중복되어 주어지지 않습니다.세 번째 줄에 집합 B의 크기 M(1네 번째 줄에 M개의 원소가 주어집니다. 원소가 중복되어 주어지지 않습니다.각 집합의 원소는 1,000,000,000이하의 자연수입니다. 출력두 집합의 공통원소를 오름차순 정렬하여 출력합니다.예시 입력 1 51 3 9 5 253 2 5 7 8 예시 출력 12 3 5 소스 코드 1 (시간 제한 걸림,,)import java.util.ArrayList;import java.util.Scanner;//공통원소 구하기 Time limit 걸림publi..
두 배열 합치기
·
algorithm
설명오름차순으로 정렬이 된 두 배열이 주어지면 두 배열을 오름차순으로 합쳐 출력하는 프로그램을 작성하세요. 입력첫 번째 줄에 첫 번째 배열의 크기 N(1두 번째 줄에 N개의 배열 원소가 오름차순으로 주어집니다.세 번째 줄에 두 번째 배열의 크기 M(1네 번째 줄에 M개의 배열 원소가 오름차순으로 주어집니다.각 리스트의 원소는 int형 변수의 크기를 넘지 않습니다. 출력오름차순으로 정렬된 배열을 출력합니다.예시 입력 1 31 3 552 3 6 7 9 예시 출력 11 2 3 3 5 6 7 9 소스 코드 1import java.util.Scanner;public class Main {//런타임 오류 남 public static int[] solution(int N, int M, int[] arr1, in..
멘토링
·
algorithm
설명현수네 반 선생님은 반 학생들의 수학점수를 향상시키기 위해 멘토링 시스템을 만들려고 합니다.멘토링은 멘토(도와주는 학생)와 멘티(도움을 받는 학생)가 한 짝이 되어 멘토가 멘티의 수학공부를 도와주는 것입니다.선생님은 M번의 수학테스트 등수를 가지고 멘토와 멘티를 정합니다.만약 A학생이 멘토이고, B학생이 멘티가 되는 짝이 되었다면, A학생은 M번의 수학테스트에서 모두 B학생보다 등수가 앞서야 합니다.M번의 수학성적이 주어지면 멘토와 멘티가 되는 짝을 만들 수 있는 경우가 총 몇 가지 인지 출력하는 프로그램을 작성하세요. 입력첫 번째 줄에 반 학생 수 N(1두 번째 줄부터 M개의 줄에 걸쳐 수학테스트 결과가 학생번호로 주어진다. 학생번호가 제일 앞에서부터 1등, 2등, ...N등 순으로 표현된다.만약 ..
임시반장 정하기
·
algorithm
설명김갑동 선생님은 올해 6학년 1반 담임을 맡게 되었다.김갑동 선생님은 우선 임시로 반장을 정하고 학생들이 서로 친숙해진 후에 정식으로 선거를 통해 반장을 선출하려고 한다.그는 자기반 학생 중에서 1학년부터 5학년까지 지내오면서 한번이라도 같은 반이었던 사람이 가장 많은 학생을 임시 반장으로 정하려 한다.그래서 김갑동 선생님은 각 학생들이 1학년부터 5학년까지 몇 반에 속했었는지를 나타내는 표를 만들었다.예를 들어 학생 수가 5명일 때의 표를 살펴보자.위 경우에 4번 학생을 보면 3번 학생과 2학년 때 같은 반이었고, 3번 학생 및 5번 학생과 3학년 때 같은 반이었으며,2번 학생과는 4학년 때 같은 반이었음을 알 수 있다. 그러므로 이 학급에서 4번 학생과 한번이라도같은 반이었던 사람은 2번 학생, ..