제2회 초콜릿컵

Bo Ram·2023년 6월 25일
0

문제

풀이

  • 기능 별 메소드 생성하여 비교
  • S의 접두사(S')의 길이를 [n/3]이 아닌 추가 조건인 [n/3]은 x보다 크거나 같은 최소의 정수라는 조건으로 n까지 늘려가며 조건을 체크하는 것이 포인트
import java.io.*;
import java.util.*;
class Main {
    static StringBuilder sb;

    static String rev(String str) {
        sb = new StringBuilder();
        str = sb.append(str).reverse() + "";
        return str;
    }

    static String tail(String str) {
        return str.substring(1);
    }

    static String fir(String str, int idx) {
        return str.substring(0, idx);
    }

    public static void main(String[] args) throws Exception {

        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        StringBuilder tmp = new StringBuilder();
        int T = Integer.parseInt(br.readLine());
        while (T-- > 0) {
            String S = br.readLine();
            int answer = 0;
            for (int i = S.length() / 3; i < S.length(); i++) {
                String a = fir(S, i);
                String b = tail(a);
                String c = rev(a);
                String d = tail(c);

                if (S.equals(a + c + a)) {
                    answer = 1;
                    break;
                }

                if (S.equals(a + d + a)) {
                    answer = 1;
                    break;
                }

                if (S.equals(a + c + b)) {
                    answer = 1;
                    break;
                }

                if (S.equals(a + d + b)) {
                    answer = 1;
                    break;
                }

            }
            tmp.append(answer).append("\n");
        }

        System.out.println(tmp);
    }
}

결과

회고

초콜릿 컵 이전 진행했던 송도고 알고리즘 대회에 참가했었지만 이벤트 문제 1솔밖에 못한 기록이 있었다.

대회 진행 중 문제를 못 풀어 쩔쩔매는 내 모습에 현타가 살짝 왔지만
다음 대회에서는 이벤트 문제가 아닌 정식 문제로 1솔 하자는 다짐으로 초콜릿 컵에 도전했다

대회에 나간 것이 처음이라 긴장한 것도 있지만 확실히 내가 어떤 문제에서
강하고 어떤 문제에서 약한지를 정확히 알 수 있었다.

알고리즘 문제를 풀며 애써 피하려 했던 문제들이 대회 문제로 출제되어
쩔쩔 매는 내 모습을 보니 다시 한번 다짐을 다질 수 있는 계기가 되었다.

이전 송도고 알고리즘 대회 문제를 풀며 느낀 것은 문제를 풀기 전에 정확하게 문제를 이해하고,
바로 코드를 짜기보단 코드의 진행 순서를 미리 머리로 그려놓는 것이 많이 도움이 되겠다고 생각 들어 이번 초콜릿컵에서는 메모장에 진행 순서를 그려 그대로 코드로 옮겨 봤더니 시간도 많이 단축되었고,코드도 보다 깔끔하게 짤 수 있었던 것 같다.

결국 그렇게 초콜릿컵에서 작지만 큰 1솔의 결과로 마무리 됐다.
풀지 못했던 문제들은 추후 풀어 리뷰 예정이다.

profile
사부작ㅤ사부작

0개의 댓글