https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV141176AIwCFAYD
* 완전이진트리
(포화이진트리 포함)
정점의 개수 N =11
리프노드수=6개
리프노드아님개수 = 11-6=5(11/2)
결론 : N/2초과->리프노드다
노드)
연산자인경우:자식없음->연산불가 -> 부모노드에 와야함
숫자인경우:자식있음->연산불가 -> 리프노드에와야함
import java.util.LinkedList;
import java.util.Queue;
import java.util.Scanner;
import java.util.StringTokenizer;
import java.util.TreeMap;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.InputStreamReader;
/*
사용하는 클래스명이 Solution 이어야 하므로, 가급적 Solution.java 를 사용할 것을 권장합니다.
이러한 상황에서도 동일하게 java Solution 명령으로 프로그램을 수행해볼 수 있습니다.
*/
class Solution_1233_유동훈_2
{
//static TreeMap<Integer, String> tree = new TreeMap<Integer, String>();
/*static void print()
{
while(!q.isEmpty())
{
System.out.print(q.poll()+" ");
}
System.out.println();
}*/
static void sol()
{
}
public static void main(String args[]) throws Exception
{
//Scanner sc = new Scanner(System.in);
int T;
//T=sc.nextInt();
T=10;
/*
여러 개의 테스트 케이스가 주어지므로, 각각을 처리합니다.
*/
BufferedReader br= new BufferedReader(new InputStreamReader(System.in));
for(int test_case = 1; test_case <= T; test_case++)
{
int answer=1;
//StringTokenizer st = new StringTokenizer(br.readLine());
int n= Integer.parseInt(br.readLine());
//숫자 1개 읽기
for(int i=0;i<n;++i)
{
StringTokenizer st2 = new StringTokenizer(br.readLine());
int key=Integer.parseInt(st2.nextToken());
char node = st2.nextToken().charAt(0);
//단말노드아닌경우(부모노드인경우)
if(i<n/2)
{
//숫자가 들어오면 오답
if(node>='0' && node <='9' )
{
answer=0;
}
}
//단말노드인경우
else
{
//숫자가아닌게 오면 오답
if(node<'0' || node>'9')
answer=0;
}
}
System.out.println("#"+test_case+" "+answer);
}
}
}
'Algorithm > swea' 카테고리의 다른 글
3234. 준환이의 양팔저울 (0) | 2022.08.19 |
---|---|
5644. [모의 SW 역량테스트] 무선 충전 (0) | 2022.08.17 |
swea: 4012 요리사 (0) | 2022.08.12 |
1861. 정사각형 방 (0) | 2022.08.09 |
1228. [S/W 문제해결 기본] 8일차 - 암호문1 (0) | 2022.08.08 |