ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • CS50 Week6: Problem Set, Mario
    Programming/CS50 2023. 7. 18. 23:33

    하버드 CS50 강의 6주차 Problem Set 과제 Mario 의 풀이를 다룹니다.
    C언어로 작성했던 간단한 프로그램을 Python으로 다시 작성해보는 과제입니다.

    Task

    이전에 C로 구현한 과제를 이번엔 python으로 똑같이 구현하면 된다.

    Code

    while True:
        height = int(input("Height: "))
        if height > 0:
            break
    
    for i in range(1, height + 1):
        print(f"{'#' * i: >{height}}" + "  " + f"{'#' * i: <{height}}")

    파이썬의 f-string이 엄청 강력해서 훨씬 간단하게 구현할 수 있다.
    f"{value: format}" 형식으로 쓰면 된다. > <는 정렬을 의미한다.

    C 코드 (비교용)

    #include <stdio.h>
    #include "cs50.h"
    
    int main(void)
    {
        // Get height from user
        int height;
        do 
        {
            height = get_int("Height: ");
        }
        while (height < 1 || height > 8);
    
        // Print pyramid
        for (int i = 1; i <= height; i++)
        {
            // width: height, precision: i
            printf("%*.*s", height, i, "########");    // Left half-pyramid
            printf("  ");                              // Gap between pyramids    
            printf("%.*s", i, "########");             // Right half-pyramid
            printf("\n");
        }
    }

    댓글