# 🔥Baekjoon start🔥

ariel·2021년 11월 23일
0

목록 보기
13/14

# 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);

}
}