
-Code
import java.util.*;
public class BOJ20733 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String str = sc.next();
// 문자열 길이 구하기
int divLength = str.length() / 3;
// 3 덩이로 문자열 나누기
String first = str.substring(0, divLength);
String second = str.substring(divLength, divLength * 2);
String third = str.substring(divLength * 2);
// 각 위치 문자 비교
StringBuilder answer = new StringBuilder();
for (int i = 0; i < divLength; i++) {
char firstChar = first.charAt(i);
char secondChar = second.charAt(i);
char thirdChar = third.charAt(i);
if (firstChar == secondChar || firstChar == thirdChar) {
// 첫번째와 두번째 혹은 첫번째와 세번째 같은 경우
answer.append(firstChar);
} else {
// 두 조건이 아닌 경우
answer.append(secondChar);
}
}
System.out.println(answer);
}
}
처음에는 문자열 3 덩이를 한 번에 비교하는 줄 알고 로직을 짰으나 너무 얕게 접근해서 틀렸었습니다. 알고 보니 문자를 각 하나씩 비교하면서 2개 이상인경우 저장하는 식으로 만드는 것이어서 해당하는 방법으로 로직을 짜고 해결했습니다.
'Beakjoon&프로그래머스 > Java' 카테고리의 다른 글
| [프로그래머스/Java] 행렬의 곱셈 (0) | 2026.01.02 |
|---|---|
| [프로그래머스/Java] 구명보트 (0) | 2026.01.02 |
| [프로그래머스/Java] 타겟 넘버 (0) | 2026.01.01 |
| [LeetCode/Java] Max Number of K-Sum Pairs (0) | 2026.01.01 |
| [LeetCode/Java] Container With Most Water (0) | 2026.01.01 |