From d09f1378be86a0b6c671304027988e2fe46305c8 Mon Sep 17 00:00:00 2001 From: ikjo93 <82401504+ikjo93@users.noreply.github.com> Date: Sun, 4 Dec 2022 15:11:07 +0900 Subject: [PATCH] Create 20221204.java --- "\354\235\265\354\241\260/20221204.java" | 31 ++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 "\354\235\265\354\241\260/20221204.java" diff --git "a/\354\235\265\354\241\260/20221204.java" "b/\354\235\265\354\241\260/20221204.java" new file mode 100644 index 0000000..d8d2c0e --- /dev/null +++ "b/\354\235\265\354\241\260/20221204.java" @@ -0,0 +1,31 @@ +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; +import java.util.Arrays; + +class Main { + + public static void main(String[] args) throws IOException { + BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); + int n = Integer.parseInt(br.readLine()); + String s = br.readLine(); + int[] memo = new int[n]; + Arrays.fill(memo, Integer.MAX_VALUE); + memo[0] = 0; + + for (int i = 0; i < n; i++) { + if (memo[i] == Integer.MAX_VALUE) continue; + char prev = s.charAt(i); + for (int j = i + 1; j < n; j++) { + char pres = s.charAt(j); + if (prev == 'B' && pres == 'O' || + prev == 'O' && pres == 'J' || + prev == 'J' && pres == 'B') { + memo[j] = Math.min(memo[j], memo[i] + (j - i) * (j - i)); + } + } + } + + System.out.println(memo[n - 1] == Integer.MAX_VALUE ? -1 : memo[n - 1]); + } +}