백준 - 1074번
풀이
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
static int size = 1;
static int answer = 0;
public static void main(String[] args) throws NumberFormatException, IOException {
BufferedReader br = new BufferedReader ( new InputStreamReader (System.in));
String str = br.readLine();
StringTokenizer st = new StringTokenizer(str);
int num = Integer.parseInt(st.nextToken()); // 배열 크기
int a = Integer.parseInt(st.nextToken()); // 행
int b =Integer.parseInt(st.nextToken()); // 열
Size(num);
Draw(a, b, size/2);
System.out.println(answer);
}
// 배열 크기 구하기
private static void Size(int num) {
size *= 2;
num--;
if(num > 0) {
Size(num);
}
}
// 배열에 값 넣기
private static void Draw(int a, int b, int size){
if(a < size) {
if(b < size) {
answer += 0;
}else {
b -= size;
answer += (size*size);
}
}else {
a -= size;
if(b < size) {
answer += 2 * (size*size);
}else {
b -= size;
answer += 3 * (size*size);
}
}
if(size != 1) {
Draw(a, b, size/2);
}
}
}