공부방

Math.pow 본문

문법/알고리즘

Math.pow

코딩 화이팅 2023. 9. 2. 15:24

거듭제곱을 해주는 메소드

Math.pow(거듭제곱할 숫자, 거듭제곱(몇제곱인지);

https://www.acmicpc.net/problem/2903

 

2903번: 중앙 이동 알고리즘

상근이는 친구들과 함께 SF영화를 찍으려고 한다. 이 영화는 외계 지형이 필요하다. 실제로 우주선을 타고 외계 행성에 가서 촬영을 할 수 없기 때문에, 컴퓨터 그래픽으로 CG처리를 하려고 한다.

www.acmicpc.net

package 일반_수학_1;

import java.util.Scanner;

public class bj2903_중앙이동알고리즘 {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        int a=sc.nextInt();
        System.out.println((int) Math.pow(Math.pow(2,a)+1,2));
    }
}

처음엔 규칙을 왜 못 찾았나 싶었지만, 해설을 보고 바로 왜 그랬지 생각이 들었다. 그리고 나선 3,5,9,...되는 등비 수열 만큼 수가 커지는 걸로 알아서 구현을 해보려 했는데, 오랜만에 알고리즘이라 이것도 구현을 어떻게 해야 할지 몰라 봤던 해설을 봤는데 입력된 값을 2에서 제곱을 하고 그 값에 1을 더한 값을 제곱하면 답이 나오는 것을 보고 감탄했다. 등비 수열로 값들을 더해가며 그 값을 제곱하는 것도 방법이지만 그러면 구현하는게 어려워져 값들을 2에서 제곱한 걸 1을 더해 제곱해주는 게 엄청 편한걸 생각해서 그렇게 구현했다. 개발자는 머리 좋은 사람들이 하는게 맞는 거 같다. 다음부터 이렇게 등비수열로 값들이 더해지면 이걸 다시 생각해봐야겠다.

'문법 > 알고리즘' 카테고리의 다른 글

HashSet  (0) 2023.06.12
dfs로봇 청소기(4방 탐색)  (0) 2023.06.04
dp-파스칼의 삼각형  (0) 2023.05.09
그리디/2차배열 정렬/회의실 배정  (0) 2023.04.27
bfs문제(토마토)  (0) 2023.04.15