🔥Baekjoon start🔥

ariel·2021년 11월 23일
0

Baekjoon

목록 보기
13/14
post-thumbnail

2021-11-23

✍쪠와 함께 하루에 30분 이상 시작✨

3053

import java.util.Scanner;
public class Main {
	 	
	public static void main(String[] args) {
 
		Scanner sc = new Scanner(System.in);
		
		double R = sc.nextInt();
		
		
		System.out.println(R * R * Math.PI);
		System.out.println(R*R*2);
		}
		}

1002

import java.util.Scanner;
public class Main {
	 	
	public static void main(String[] args) {
 
		Scanner sc = new Scanner(System.in);
		
		int T = sc.nextInt();
		while(T --> 0) {
			int x1 = sc.nextInt();
			int y1 = sc.nextInt();
			int r1 = sc.nextInt();
	
			int x2 = sc.nextInt();
			int y2 = sc.nextInt();
			int r2 = sc.nextInt();
			
			System.out.println(tangent_point(x1, y1, r1, x2, y2,r2));
		}
		}
	
	
	public static int tangent_point(int x1,int y1,int r1,int x2,int y2,int r2) {
		int distance_pow = (int)(Math.pow(x2 - x1, 2)+ Math.pow(y2 -y1, 2));
		
		//case 1 :중점이 같으면서 반지름도 같을 경우
		if(x1 == x2 && y1 == y2 && r1 == r2) {
			return -1;
		}
		// case 2-1 : 두원의 반지름 합보다 중점간 거리가 더 길 때
		else if(distance_pow > Math.pow(r1 + r2, 2)) {
			return 0;
		}
		
		else if(distance_pow < Math.pow(r2 - r1, 2)) {
			return 0;
		}
		//case 2-2 : 원 안에 원이 있으나 내접라지 않을 때 
		else if(distance_pow == Math.pow(r2 - r1, 2)) {
			return 1;
		}
		//case 3-2 : 외접할 때
		else if(distance_pow == Math.pow(r1+r2, 2)){
			return 1;
		}
		else {
			return 2;
		}
	}
}

10872

import java.util.Scanner;
public class Main {
	 	
	public static void main(String[] args) {
 
		Scanner sc = new Scanner(System.in);
		
		int N = sc.nextInt();
		sc.close();
		
		int sum = fa(N);
		System.out.println(sum);
		
		}
	public static int fa(int N) {
		if(N <= 1) return 1;
		return N * fa(N - 1);
	}
	}

10870

import java.util.Scanner;
public class Main {
	 	
	public static void main(String[] args) {
 
		Scanner sc = new Scanner(System.in);
		
		int N = sc.nextInt();
		
		System.out.println(fi(N));
		
		}
	public static int fi(int N) {
		if(N == 0) return 0;
		if(N == 1) return 1;
		
		return fi(N - 1) + fi(N - 2);
	}
	}

2447

import java.util.Scanner;
public class Main {
	 	
	static char[][] arr;
	
	public static void main(String[] args) {
 
		Scanner sc = new Scanner(System.in);
		int N = sc.nextInt();
		
		arr=new char[N][N];
		
		star(0,0,N, false);
		
		StringBuilder sb = new StringBuilder();
		for(int i = 0; i<N; i++) {
			for(int j =0; j<N; j++) {
				sb.append(arr[i][j]);
			}
			sb.append('\n');
		}
		System.out.print(sb);
	}
	
	static void star(int x, int y, int N,boolean blank) {
	//공백칸일 경우
	if(blank) {
		for(int i = x; i< x+N; i++) {
			for(int j = y; j<y+N; j++) {
				arr[i][j] = ' ';
				}
			}
		return;
	}
	//더 이상 쪼갤 수 없는 블록일 때
	if(N == 1) {
		arr[x][y] = '*';
		return;
	}
	
	//해당 블록의 한 칸을 담을 변수를 의미 size
	//count는 별 출력 누적 하을 의미하는 변수
	int size = N / 3;
	int count = 0;
	for(int i = x; i<x+N; i += size) {
		for(int j = y; j<y+N; j += size) {
			count++;
			if(count == 5) { //공백 칸일 경우
				star(i,j,size,true);
			}else {
				star(i,j,size, false);
				
			}
			}
		}
	}
	}

11729

import java.util.Scanner;
public class Main {
	
	public static StringBuilder sb = new StringBuilder();
	
	public static void main(String[] args) {
 
		Scanner sc = new Scanner(System.in);
		int N = sc.nextInt();
		
		sb.append((int)(Math.pow(2,  N)-1)).append('\n');
		
		Hanoi(N, 1,2,3);
		System.out.println(sb);

	}
public static void Hanoi(int N, int start, int mid, int to) {
	if(N == 1) {
		sb.append(start + " "+ to +"\n");
		return;
	}
	
	Hanoi(N - 1, start, to, mid);
	sb.append(start + " " + to + "\n");
	
	Hanoi(N - 1, mid, start, to);
	
}
}

0개의 댓글