문제 링크
접근 방법
한 행에 대해서 양 옆의 문자 중 서로 다른 단어가 나오면 그 단어의 카운트를 집계, 같은 단어가 나온다면 가장 많이 나온 횟수를 갱신하는 것이었다.
문제 이해하는데 시간이 오래 걸려서 스터디원의 도움을 받았다.
fox box의 경우는 f, b 경우에는 겹치지 않기 때문에 1을 추가. o와 x는 둘 다 최대 1번씩 나타나기 때문에 1씩 갱신해준다
bus car의 경우에는 b는 한번 등장했기에 위에서 +1을 해줘서 총 2가 되고, 나머지의 경우도 1로 갱신이 된다.
코드
import java.io.*;
import java.util.StringTokenizer;
public class Main_두단어중특정알파벳 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int T = Integer.parseInt(br.readLine());
int[] res = new int[26];
int[] cnt1, cnt2;
String left, right;
for (int i = 0; i < T; i++) {
StringTokenizer tokens = new StringTokenizer(br.readLine());
left = tokens.nextToken();
right = tokens.nextToken();
cnt1 = new int[26];
cnt2 = new int[26];
for (int j = 0; j < left.length(); j++) {
cnt1[left.charAt(j)-'a']++;
}
for (int j = 0; j < right.length(); j++) {
cnt2[right.charAt(j)-'a']++;
}
for (int j = 0; j < 26; j++) {
res[j] += Math.max(cnt1[j], cnt2[j]);
}
}
for (int i = 0; i < 26; i++) {
bw.write(res[i]+"\n");
}
bw.flush();
bw.close();
}
}'Problem Solving > CodeTree' 카테고리의 다른 글
| [CodeTree Java] 함께가는 열차 (0) | 2023.04.25 |
|---|---|
| [CodeTree Java] 우유 생산량 경쟁 (0) | 2023.04.23 |
| [CodeTree Java] 수의 곱셈 (0) | 2023.04.17 |
| [CodeTree Java] 코드트리 빵 (0) | 2023.03.30 |
| [Codetree Java] 꼬리잡기놀이 (0) | 2023.03.22 |