> 개발-IT-인터넷/> JAVA

[해커랭크(HackerRank) JAVA 풀이] - Java Loops II

jini:) 2021. 8. 3. 20:29
728x90
반응형
해커랭크 - https://www.hackerrank.com/
Prepare > Java > Introduction > Java Loops II
 

HackerRank

HackerRank is the market-leading technical assessment and remote interview solution for hiring developers. Learn how to hire technical talent from anywhere!

www.hackerrank.com

 

정수 a, b, n을 사용하여 다음 식을 만듭니다.

(a + 2⁰ㆍb), (a + 2⁰ㆍb + 2¹ㆍb), ... , (a + 2⁰ㆍb + 2¹ㆍb + ... + 2ⁿ⁻¹ㆍb)

q 쿼리는 a, b, n 형식으로 제공됩니다. 각 쿼리에 대해 주어진 a, b, n 값에 해당하는 시리즈를 n개의 공백으로 구분된 정수의 단일 행으로 출력합니다.

 

Input Format :

첫 번째 행에는 쿼리 수를 나타내는 정수 q가 포함됩니다.

q 후속 행의 각 행 i에는 해당 쿼리의 각 aᵢ, bᵢ, nᵢ 값을 설명하는 세 개의 공백으로 구분된 정수가 포함됩니다.

 

Constraints :

  • 0 ≤ q ≤ 500
  • 0 ≤ a, b ≤ 50
  • 1 ≤ n ≤ 15

 

Output Format :

각 쿼리에 대해 해당 시리즈를 새 줄에 출력합니다. 각 시리즈는 n개의 공백으로 구분된 정수의 단일 행으로 순서대로 출력되어야 합니다.

 

Sample Input :

2
0 2 10
5 3 5

 

Sample Output :

2 6 14 30 62 126 254 510 1022 2046
8 14 26 50 98

 

 

Explanation :

두 가지 쿼리가 있습니다.

1. a = 0, b = 2, n = 10을 사용하여 S₀, S₁, ..., Sₙ₋₁ 시리즈를 생성합니다.

  • S₀ = 0 + 1ㆍ2 = 2
  • S₁ = 0 + 1ㆍ2 + 2ㆍ2 = 6
  • S₂ = 0 + 1ㆍ2 + 2ㆍ2 + 4ㆍ2 = 14

    ... 등등.

    n = 10에 도달하면 처음 10개의 항을 공백으로 구분된 정수를 한 줄로 출력합니다.

2. a = 5, b = 3, n = 5를 사용하여 S₀, S₁, ..., Sₙ₋₁ 시리즈를 생성합니다.

  • S₀ = 5 + 1ㆍ3 = 8
  • S₁ = 5 + 1ㆍ3 + 2ㆍ3 = 14
  • S₂ = 5 + 1ㆍ3 + 2ㆍ3 + 4ㆍ3 = 26
  • S₃ = 5 + 1ㆍ3 + 2ㆍ3 + 4ㆍ3 + 8ㆍ3 = 50
  • S₄ = 5 + 1ㆍ3 + 2ㆍ3 + 4ㆍ3 + 8ㆍ3 + 16ㆍ3 = 98

    그런 다음 시리즈의 각 요소를 공백으로 구분된 값을 한 줄로 출력합니다.

 

 

Code :

import java.util.*;
import java.io.*;

class Solution{
    public static void main(String []argh){
        Scanner in = new Scanner(System.in);
        int t=in.nextInt();
        
        for(int i=0;i<t;i++){
            int a = in.nextInt();
            int b = in.nextInt();
            int n = in.nextInt();
            int v = a;
            
            for(int j=0; j<n; j += 1){
                v += (int)Math.pow(2, j) * b;
                
                System.out.printf("%d ", v);
            }
            System.out.println("");
        }
        in.close();
    }
}

 

Math.pow() 메소드를 이용하여 JAVA에서 거듭 제곱을 계산할 수 있다.
pow()의 인자로 a, b를 전달하고, 그 결과는 a의 b 제곱이 리턴된다.
3의 5 제곱일 경우, a는 3. b는 5.

 

 

 

개인 공부를 위한 포스팅입니다.
모든 번역, 코드는 완벽하지 않을 수 있습니다.

 

 

 

728x90
반응형