본문 바로가기

SWEA2

[D3] 무한 문자열 - 15758 (Java) 문제 요약 문자열 S에 대해, f(S)를 S를 무한히 반복해서 얻은 문자열이라고 정의하자. 예를 들어 f(“abcd”) = “abcdabcdabcdabcd…”이다. S≠T이라도 f(S)=f(T) 일 수 있다. 예를 들어 S = “ababab”, T = “abab”라면 f(S)와 f(T) 모두 “ababababababab…”이다. 두 개의 문자열 S와 T가 주어질 때, f(S)=f(T)인지의 여부를 구하는 프로그램을 작성하라. 문제 분석 두 문자열 길이의 최소공배수를 구한 후 각 문자열을 그 길이만큼 확장하고 두 문자열이 같은지 비교한다. 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader.. 2023. 8. 27.
[D3] 최고의 쌍 - 9839 (Java) 문제 요약 N개의 양의 정수가 주어졌을 때, 이들 중 정확히 서로 다른 두 개의 정수 쌍을 고르려고 한다. 이때, 두 정수를 고르는 데 있어서 특별한 제약 조건이 존재한다. 고른 서로 다른 두 정수를 x, y라고 하면, 두 정수의 곱 x*y는 10진수로 읽었을 때 증가하면서도 연속한 숫자들로 이루어져야 한다. 예를 들어 2, 23, 23456, 56789는 제약 조건을 만족하고, 21, 54321, 67890, 89012, 88, 889, 79는 제약 조건을 만족하지 않는다. 이 조건을 만족하는 모든 쌍 중, 두 정수의 곱이 최대화되는 쌍을 “최고의 쌍”이라고 부른다. 최고의 쌍이 존재하는지, 존재한다면 이 쌍의 곱은 얼마인지 계산하는 프로그램을 작성해보자. 문제 분석 숫자들을 받아서 최댓값을 기준으로 .. 2023. 8. 27.