[백준] 1074 Z - Java
1. base condition 작성
2. 분기에 따른 코드 작성
3. 믿음
절차적 사고에서 벗어나자.
import java.util.*;
import java.io.*;
public class Main {
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
int N = Integer.parseInt(st.nextToken());
int R = Integer.parseInt(st.nextToken());
int C = Integer.parseInt(st.nextToken());
System.out.println(solve(N,R,C));
}
static int solve(int n, int r, int c){
if(n == 0){ // base condition
return 0; // 1이 아니고 0으로 설정했음
}
int half = (int)Math.pow((double)2, (double)n-1);
if(r < half && c < half){ // area 1
return solve(n-1, r, c);
}
if(r < half && c >= half){ // area 2
return half * half + solve(n-1, r, c-half);
}
if(r >= half && c < half){ // area 3
return 2* half * half + solve(n-1, r-half, c);
}
return 3 * half * half + solve(n-1, r-half, c-half); // area 4
}
}
반응형
'Algorithm > Baekjoon' 카테고리의 다른 글
[백준] 2630 색종이 만들기 - Java (0) | 2022.05.16 |
---|---|
[백준] 1780 종이의 개수 - Java (0) | 2022.05.16 |
[백준] 2251 물통 - Java (0) | 2022.05.14 |
[백준] 2535 아시아 정보올림피아드 - Java (0) | 2022.05.13 |
[백준] 2667 단지번호붙이기 - Java (0) | 2022.05.13 |
댓글
이 글 공유하기
다른 글
-
[백준] 2630 색종이 만들기 - Java
[백준] 2630 색종이 만들기 - Java
2022.05.16 -
[백준] 1780 종이의 개수 - Java
[백준] 1780 종이의 개수 - Java
2022.05.16 -
[백준] 2251 물통 - Java
[백준] 2251 물통 - Java
2022.05.14 -
[백준] 2535 아시아 정보올림피아드 - Java
[백준] 2535 아시아 정보올림피아드 - Java
2022.05.13