알고리즘

[2440/2441] 별찍기 3-4

홍루피 2018. 5. 11. 23:58

 

별찍기 3

 

 

 

 

 

코드 및 풀이방식

 

 

<풀이방식>

1. 5를 입력했을 때 5줄이 출력됨 -> for문 전체 반복 수가 5

입력받은 변수의 이름이 star라면

전체 반복문을 for(int i=0;i<star;i++) 이런 식으로 만들고 시작한다.

 

2. 별이 5개부터 1개까지 줄어든다.

i=0일 때: 별의 개수 j=5

i=1일 때: 별의 개수 j=4 

 

* 즉 관계가 j=행 수(star)-i 라는 것을 알 수 있다.

 

 

 

<코드>

 

#include <iostream>
using namespace std;

 

//별찍기 3
int main(){

 int star;
 cin >> star;

 

 for (int i = 0; i < star; i++){
  for (int j = 0; j < star-i; j++){
   cout << "*";
  }
  cout << endl;
 }

}

 

 

 

 

 

 

별찍기 4

 

 

코드 및 풀이방식

 

 

1. 5를 입력했을 때 5줄이 출력됨 -> for문 전체 반복 수가 5

입력받은 변수의 이름이 star라면

전체 반복문을 for(int i=0;i<star;i++) 이런 식으로 만들고 시작한다. (위 문제와 동일)

 

2. 공백 처리

 

첫째 줄(i=0일 때), 공백 없음, 별 5개

둘째 줄(i=1일 때), 공백 1개, 별 4개

셋째 줄(i=2일 때), 공백 2개, 별 3개

 

일반화 시키면

공백: i , 별: star-i

 

변수들을 상황에 따라서 다 나열해보면(물론 다 나열하긴 힘들지만...) 일반식을 만들 수 있다!!

 

 

<코드>

 

#include <iostream>
using namespace std;

 

//별찍기 4

int main(){
 int star;
 cin >> star;

 

for (int i = 0; i < star; i++)
 {
  //공백

  for (int j = 0; j < i; j++)
  {
   cout << " ";
  }

  

  //별

  for (int k = star; k>i; k--)
  {
   cout << "*";
  }

  

  cout << endl;
 }

}