SWEA 1233規則演算の検証
12379 ワード
バイナリツリーに関する質問ですが、入力の規則性が見つかれば、バイナリツリーに対する理解がなくても簡単に解くことができます.
演算が可能な場合は、すべてのリーフノード(最下位ノード)が数値で構成され、残りのノードは演算子で構成されます.
入力中葉ノードは最後に入るので,該当する条件を確認するだけで所望の答えが得られる.
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.StringTokenizer;
public class Solution {
static BufferedReader br;
static BufferedWriter bw;
static StringTokenizer st;
public static void main(String[] args) throws IOException {
br = new BufferedReader(new InputStreamReader(System.in));
bw = new BufferedWriter(new OutputStreamWriter(System.out));
// 숫자 > (int) 48
for (int tc = 1; tc <= 10; tc++) {
int N = Integer.parseInt(br.readLine());
int pass = 1;
if (N % 2 == 0) {
pass = 0;
for (int i = 0; i < N; i++) {
br.readLine();
}
} else {
for (int i = 0; i < N / 2; i++) {
st = new StringTokenizer(br.readLine(), " ");
st.nextToken();
if (st.nextToken().charAt(0) >= 48)
pass = 0;
if (st.nextToken().charAt(0) < 48)
pass = 0;
if (st.nextToken().charAt(0) < 48)
pass = 0;
}
for (int i = N / 2; i < N; i++) {
if (br.readLine().charAt(0) < 48)
pass = 0;
}
}
bw.append(String.format("#%d %d\n", tc, pass));
}
bw.flush();
bw.close();
}
}
Reference
この問題について(SWEA 1233規則演算の検証), 我々は、より多くの情報をここで見つけました https://velog.io/@mraz0210/SWEA1233-사칙연산-유효성-검사テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol