Problem Solving/BOJ

[백준 / BOJ] C++ 19568 직사각형

nageune 2023. 4. 23. 10:44
728x90
반응형

19568번: 직사각형

 

문제

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

 

19568번: 직사각형

당신이 만든 표에 적힌 수를 한 줄에 30개씩, 30줄로 출력하여라. 정확한 형식은 예제 출력을 참고하자.

www.acmicpc.net

 

 

풀이

2차원 약 팔기다. 아직 약 팔기 문제를 풀지 않았다면 아래 문제를 풀어보고 오는 것을 추천한다.

[15311 약 팔기 문제] [15311 약 팔기 풀이]

 

힌트

더보기

약 팔기 문제처럼 진수를 이용한다.

 

풀이

더보기

30×30 배열을 사용하므로 중간인 15를 기준으로 삼아 15진수를 사용한다.

중심을 기준으로 좌우로 1, 15를 채우고 상하로 15^2, 15^3을 채운다.

나머지 칸은 모두 0으로 채우면 50000을 조금 상회하는 수까지 나타낼 수 있다.

 

 

코드

이 문제를 전혀 풀지 못하겠고 재미를 상실해도 좋다면 코드를 열어보세요.

더보기
#include <bits/stdc++.h>
using namespace std;

int main() {
  ios::sync_with_stdio(0);
  cin.tie(0);
  for (int i = 0; i < 30; i++) {
    for (int j = 0; j < 30; j++)
      if (i == 15 && j < 14)
        cout << "1 ";
      else if (i == 15 && j > 14)
        cout << "15 ";
      else if (i < 15 && j == 14)
        cout << "225 ";
      else if (i > 15 && j == 14)
        cout << "3375 ";
      else
        cout << "0 ";
    cout << '\n';
  }
  return 0;
}

 

728x90
반응형