728x90
반응형
해커랭크 - https://www.hackerrank.com/
Prepare > Java > Strings > Java Substring Comparisons
다음 용어를 정의합니다.
- 알파벳 또는 사전 순서라고도 하는 사전 순서는 다음과 같이 문자를 정렬합니다. A < B < ... < Y < Z < a < b < ... < y < z
예를 들어, ball < cat, dog < dorm, Happy < happy, Zoo < ball. - 문자열의 substring은 문자열에서 연속적인 문자 블록입니다. 예를 들어, abc의 substring은 a, b, c, ab, bc 및 abc입니다.
문자열 s와 정수 k가 주어지면 사전순으로 길이가 k인 가장 작은 부분 문자열과 가장 큰 부분 문자열을 찾도록 함수를 완성합니다.
Function Description
아래 에디터에서 getSmallestAndLargest 함수를 완성하세요.
getSmallestAndLargest에는 다음 매개변수가 있습니다.
- string s : 문자열
- int k : 찾을 부분 문자열의 길이
Returns
- string : 여기서 ' + "\n" + ' 는 두개의 substring
Input Format
- 첫 번째 줄에는 s를 나타내는 문자열이 있습니다.
- 두 번째 줄에는 k를 나타내는 정수가 있습니다.
Constraints
- 1 ≤ |s| ≤ 1000
- s는 영어 알파벳 문자로만 구성됩니다(즉, [a-zA-Z]).
Sample Input
welcometojava
3
Sample Output
ava
wel
Explanation
String s = "welcometojava"에는 사전순으로 정렬된 다음과 같은 길이 k = 3의 하위 문자열이 있습니다.
["ava", "com", "elc", "eto", "jav", "lco", "met", "oja", "ome", "toj", "wel"]
그런 다음 첫 번째(사전적으로 가장 작은) 하위 문자열과 마지막(사전적으로 가장 큰) 하위 문자열을 줄 바꿈으로 구분된 두 값(즉, ava\nwel)으로 반환합니다.
그런 다음 에디터의 스텁 코드는 ava를 첫 번째 출력 줄로 출력하고 wel을 두 번째 줄로 출력합니다.
Code :
import java.util.Scanner;
public class Solution {
public static String getSmallestAndLargest(String s, int k) {
String smallest = "";
String largest = "";
// Complete the function
// 'smallest' must be the lexicographically smallest substring of length 'k'
// 'largest' must be the lexicographically largest substring of length 'k'
String tmp = s.substring(0, k);
smallest = tmp;
largest = tmp;
for(int i = 1; i <= (s.length() - k); i++){
tmp = s.substring(i, (i + k));
if(tmp.compareTo(smallest) < 0){
smallest = tmp;
}
if(tmp.compareTo(largest) > 0){
largest = tmp;
}
}
return smallest + "\n" + largest;
}
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
String s = scan.next();
int k = scan.nextInt();
scan.close();
System.out.println(getSmallestAndLargest(s, k));
}
}
개인 공부를 위한 포스팅입니다.
모든 번역, 코드는 완벽하지 않을 수 있습니다.
728x90
반응형
'> 개발-IT-인터넷 > > JAVA' 카테고리의 다른 글
[해커랭크(HackerRank) JAVA 풀이] - Java Date and Time (0) | 2021.10.01 |
---|---|
[해커랭크(HackerRank) JAVA 풀이] - Java String Reverse (0) | 2021.09.01 |
[해커랭크(HackerRank) JAVA 풀이] - Java Substring (0) | 2021.08.31 |
[해커랭크(HackerRank) JAVA 풀이] - Java Strings Introduction (0) | 2021.08.31 |
[해커랭크(HackerRank) JAVA 풀이] - Java Currency Formatter (0) | 2021.08.27 |