본문 바로가기

코딩 -/백준 알고리즘 해설

백준 알고리즘 단계별 문제풀이 3 . for문 , 별 찍기 - 2 (백준 2439번)

반응형

백준 알고리즘 문제의 단계별 문제의 3번. for문 파트입니다.

 

 <출처 - 백준 알고리즘 문제 - 단계별 문제풀이 for 파트 10번 >

 

별찍기 문제입니다.

총 몇번 찍을지를 입력받고 순차적으로 찍어주기때문에 이중 for문으로 풀겠습니다.

 

C언어입니다.

#include<stdio.h>
int main(){
    int a;
    scanf("%d",&a);
    for (int i=1;i<=a;i++){
    	for(int j=0;j<(a-i);j++){
        	printf(" ");
        }
        for(int j=0;j<i;j++){
        	printf("*");
        }
        printf("\n");
    }
}

 

 

C++입니다.

#include <iostream>
using namespace std;

int main(){
    ios::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);
	int n;
    cin>>n;
    for (int i=1;i<=n;i++){
    	for(int j=0;j<(a-i);j++){
        	cout<<" ";
        }
        for(int j=0;j<i;j++){
			cout<<"*";
        }
        cout<<"\n";
    }
}

 

 

 

python입니다

파이썬의경우 출력의 갯수를  print("문자"*갯수)로 문자의 갯수대로 출력할 수 있기때문에 해당 형식으로 출력하면 됩니다.

 

그리고 파이썬 print 의 경우 마지막 '\n'이 자동으로 포함되어있습니다

줄바꿈 없이 print를 하는 방법은

 print(" "*(a-i),end="")

end="" 이라는게 마지막 \n 대신 "" 으로 처리하겠다입니다.

import sys
a=int(sys.stdin.readline())

for i in range(1,a+1):
        print(" "*(a-i),end="")
        print("*"*i)

 

 

 

 

Java입니다.

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

public class Main {

	public static void main(String args[]) throws Exception {
		
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        int num = Integer.parseInt(br.readLine());	//총 입력받을 문자 수     
        for(int i=1;i<=num;i++){
        	for(int j=0;j<(num-i);j++){
            	bw.write(" "); 
            }
        	for(int j=0;j<i;j++){
            	bw.write("*"); 
            }
            bw.write("\n"); 
		}
        bw.flush(); // 남아있는 데이터를 모두 출력
		bw.close(); //닫음
	}
}

 

이것으로 8번째 기본  for문 문제인 별 찍기 -2을 풀어보았습니다.

 

반응형