본문 바로가기

코딩 문제/백준

백준 - 1074번

728x90

 

풀이

 

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

            }

      }

}

'코딩 문제 > 백준' 카테고리의 다른 글

백준 - 1780번  (0) 2021.03.15
백준 - 1769번  (0) 2021.03.15
백준 - 1059번  (0) 2021.03.15
백준 - 1037번  (0) 2021.03.15
백준 - 1018번  (0) 2021.03.15