본문 바로가기

알고리즘/백준

[백준] 2903 - 중앙 이동 알고리즘 (JAVA/ 자바)

반응형

2903번 문제(1)
2903번 문제(2)

 

1.Scanner를 이용한 방법

import java.util.Scanner;

public class Main{
public static void main(String[] args){

    Scanner sc = new Scanner(System.in);

    int N = sc.nextInt();
    int d = 2;
    
    for(int i=0; i<N; i++){
        d = (d+(d-1));
    }
    System.out.println(d*d);
    sc.close();
    }
}
import java.util.Scanner;

public class Main{
public static void main(String[] args){

    Scanner sc = new Scanner(System.in);

    int N = sc.nextInt();
    int d = 2;
    
    for(int i=0; i<N; i++){
        d = (d+(d-1));
    }
    System.out.println((int)Math.pow(d, 2));
    sc.close();
    }
}

 

2.BufferedReader를 이용한 방법

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main{
public static void main(String[] args)throws IOException{

    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

    int N = Integer.parseInt(br.readLine());
    int d = 2;
    
    for(int i=0; i<N; i++){
        d = (d+(d-1));
    }
    System.out.println(d*d);
    br.close();
    }
}
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main{
public static void main(String[] args)throws IOException{

    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

    int N = Integer.parseInt(br.readLine());
    int d = 2;
    
    for(int i=0; i<N; i++){
        d = (d+(d-1));
    }
    System.out.println((int)Math.pow(d, 2));
    br.close();
    }
}

아래는 Math.pow()라는 거듭 제곱 메서드이다. 기본 double로 되기 때문에 (int)를 붙여주었다.

 

 

거듭제곱 출처 : https://coding-factory.tistory.com/531

반응형