Computer Science/알고리즘

[알고리즘 - C++, Python] SWEA 8016 홀수 피라미드

바보1 2022. 6. 10. 15:47

https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWvzGUKKPVwDFASy 

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com

 

반복문 쓸 필요도 없고, 그냥 점화식 세워서 문제 풀어버리면 된다.

 

c++)

#include <iostream>

using namespace std;

int main() {
  unsigned long long int test, i;
  cin >> test;

  for (int j = 1; j <= test; j++){
    cin >> i;
    if (i == 1){
      cout << '#' << j << " " <<  1 << " " << 1 << endl;
    }
    else{
      unsigned long long int left = 2 * (i - 1) * (i - 1) + 1;
      unsigned long long int right = 2 * i * i - 1;
      cout << '#' << j << " " <<  left << " " << right << endl;
    }
  }
  
  return 0;
}

 

 

python)

T = int(input())        # 테스트 케이스의 수

for j in range(1, T + 1):
    i = int(input())    
    if i == 1:
        print(f"#{j} {1} {1}")
    else:
        left = 2 * (i - 1)**2 + 1
        right = 2 * (i)**2 - 1
        print(f"#{j} {left} {right}")