문제 : https://www.acmicpc.net/problem/1622
중요한건 2개의 문자열에서 각각의 문자열에 포함된 알파벳의 갯수이다. 예를들어 다음을 보자.
S1 : accaab
S2 : cccabbb
S1은 a:3, b:1, c:2
S2는 a:1, b:3, c:3
이다. 이렇게 카운팅만 할 수 있다면, 사전순으로 가장 빠르면서 문제에서 제시된 출력은 a,b,c,d,...,z 까지 세어둔 수를 확인하면서 둘 중 작은 개수만큼 출력하면 된다.
위를 예로들면 a : 3과 1중 작은거, b : 1과 3중 작은거, c : 2와 3중 작은거.
따라서 a를 1번, b를 1번, c를 2번 출력하면 되므로 답은
abcc가 된다.
코드 : https://github.com/NaHwaSa/BOJ_BaekjunOnlineJudge/blob/master/01600/BOJ_1622.java
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class Main {
private int[] getCntArr(String s) {
int[] cnt = new int['z'-'a'+1];
for (int i = 0; i < s.length(); i++) {
cnt[s.charAt(i)-'a']++;
}
return cnt;
}
private void solution() throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder answer = new StringBuilder();
while (true) {
String a = br.readLine();
if (a == null) break;
String b = br.readLine();
int[] cntA = getCntArr(a);
int[] cntB = getCntArr(b);
for (int i = 0; i < cntA.length; i++) {
for (int j = 0; j < Math.min(cntA[i], cntB[i]); j++) {
answer.append((char)('a'+i));
}
}
answer.append('\n');
}
System.out.print(answer);
}
public static void main(String[] args) throws Exception {
new Main().solution();
}
}
'PS > BOJ' 카테고리의 다른 글
CodeForces 1614A - Divan and a Store (Java) (0) | 2021.11.27 |
---|---|
백준 2697 자바 - 다음수 구하기 (BOJ 2697 JAVA) (0) | 2021.11.26 |
백준 11969 자바 - Breed Counting (BOJ 11969 JAVA) (0) | 2021.11.24 |
백준 15725 자바 - 다항함수의 미분 (BOJ 15725 JAVA) (0) | 2021.11.24 |
백준 4781 자바 - 사탕 가게 (BOJ 4781 JAVA) (0) | 2021.11.23 |
댓글