ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 3. 직사각형 별 찍기
    코딩 테스트/Level 1 2019. 10. 2. 20:07
    반응형

    https://programmers.co.kr/learn/courses/30/lessons/12969

     

    코딩테스트 연습 - 직사각형 별찍기

    이 문제에는 표준 입력으로 두 개의 정수 n과 m이 주어집니다. 별(*) 문자를 이용해 가로의 길이가 n, 세로의 길이가 m인 직사각형 형태를 출력해보세요. 제한 조건 n과 m은 각각 1000 이하인 자연수

    programmers.co.kr

     

    문제 내용은 위 링크를 참고하세요.

     

    파이썬

    흔한 답입니다.

    # 인풋으로 문자열이 들어옵니다. ex) '5 3'
    # split(' ')은 이 문자열을 ' '으로 나누어 리스트에 저장합니다. ex) ['5', '3']
    # 이를 a, b에 언패킹합니다. ex) a, b = ['5', '3']
    a, b = input().split(' ')  
    
    for i in range(int(b)):  # a, b는 문자열이기 때문에 정수형으로 변환해야 합니다. 
        for j in range(int(a)):
            print('*', end='')  # end=''으로 줄바꿈(개행문자) 없이 출력합니다. 
        print()  # 한줄 출력이 끝나면 줄바꿈 해줍니다. 

    map 함수를 이용해서 int까지 한 번에 해결할 수도 있습니다. 

    a, b = map(int, input().split(' '))
    
    for i in range(b):
        for j in range(a):
            print('*', end='')
        print()

    for 문을 사용하지 않고 문자열의 곱으로 처리할 수도 있습니다. 

    a, b = map(int, input().split(' '))
    print(('*' * a + '\n') * b)

     

    자바스크립트

    repeat문을 사용하면 됩니다. 

    process.stdin.setEncoding('utf8');
    process.stdin.on('data', data => {
        let [a, b] = data.split(" ").map(Number)
        console.log(('*'.repeat(a) + '\n').repeat(b))
    });

     

    자바

    자바에도 repeat가 있습니다. 

    import java.util.Scanner;
    
    public class Solution {
        public static void main(String[] args) {
            Scanner sc = new Scanner(System.in);
            int a = sc.nextInt();
            int b = sc.nextInt();
            System.out.print(("*".repeat(a) + "\n").repeat(b));
        }
    }

     

    package main
    
    import "fmt"
    
    func main() {
    	var a, b int
    	fmt.Scan(&a, &b)
    	for i := 0; i < b; i++ {
    		for j := 0; j < a; j++ {
    			fmt.Print("*")
    		}
    		fmt.Println()
    	}
    }

     

    코틀린

    fun main(args: Array<String>) {
        val (a, b) = readLine()!!.split(' ').map(String::toInt)
        print(("*".repeat(a) + "\n" ).repeat(b))
    }

     

    C#

    using System;
    
    public class Example
    {
        public static void Main()
        {
            String[] s;
    
            s = Console.ReadLine().Split(' ');
    
            int a = Int32.Parse(s[0]);
            int b = Int32.Parse(s[1]);
    
            for (int j = 0; j < b; j++)
            {
                for (int i = 0; i < a; i++)
                {
                    Console.Write("*");
                }
                Console.WriteLine();
            }
    
        }
    }

    RUST 

    인풋 받기가 귀찮아서....

    fn solution(m: i32, n: i32) {
        for _ in 0..m {
            let mut temp = String::new();
            for _ in 0..n {
                temp.push('*');
            }
            println!("{}", temp);
        }
    }
    반응형
Designed by Tistory.