문제
레벨: G4
알고리즘: 그리드
풀이시간: 30분
힌트 참조 유무: 무
https://www.acmicpc.net/problem/12904
1 번째 시도
[로직 설명]
T에 룰을 거꾸로 적용해서 하나씩 빼주고 마지막에 비교한다.
[배운점]
String 함수 되짚기
import org.w3c.dom.Node;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Arrays;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String S = br.readLine();
String T = br.readLine();
int N = T.length() - S.length();
for (int i = 0; i < N ; i++) {
if (T.charAt(T.length()-1) == 'A') {
T = rule1(T);
}
else {
T = rule2(T);
}
}
if(S.equals(T))
System.out.println(1);
else {
System.out.println(0);
}
}
public static String rule1(String T) {
return T.substring(0, T.length()-1);
}
public static String rule2(String T) {
String substring = T.substring(0, T.length() - 1);
StringBuilder sb = new StringBuilder();
for(int i = substring.length()-1 ; i >= 0 ; i--) {
sb.append(substring.charAt(i));
}
return sb.toString();
}
}
[보충해야 할 점]
subString을 이용해서 문자열을 빼는 게 아니라 StringBuilder의 deleteCharAt() 함수를 이용할 수 있다.
또 하나, StringBuilder에는 뒤지는 함수 reverse() 가 있다.
'알고리즘 > 그리디' 카테고리의 다른 글
[백준 13334] 철로 / 자바 / 라인스위핑 ** (5) | 2024.08.28 |
---|---|
[백준 1700] 멀티탭 스케줄링 / 자바 / 그리드 (0) | 2024.08.10 |
[백준 1744] 수 묶기 / 자바 / 그리디 (0) | 2024.06.22 |
[백준 1339번] 단어 수학 / 자바 / 그리디 ** (0) | 2024.06.03 |
항해99 32일차 TIL(강의실 배정 / 백준) (2) | 2024.05.01 |