Prepare > Python > Strings > Alphabet Rangoli

2023. 7. 14. 20:40HackerRank-Python

 

Alphabet Rangoli | HackerRank

Let's draw rangoli.

www.hackerrank.com

 

문제


You are given an integer, N. Your task is to print an alphabet rangoli of size N. (Rangoli is a form of Indian folk art based on creation of patterns.)

 

 

 

 

코드


def print_rangoli(size):
    al = 'abcdefghijklmnopqrstuvwxyz'
    
    for i in range(size):
        half_up = '-'.join(al[size-1: size-i-1: -1] + al[size-i-1:size])
        print(
            half_up.center(4*size-3, '-')
        )
        
    for j in range(size-1, 0, -1):
        half_down = '-'.join(al[size-1: size-j: -1] + al[size-j: size])
        print(
            half_down.center(4*size-3, '-')
        )
    


if __name__ == '__main__':
    n = int(input())
    print_rangoli(n)

 

 

 

 

노트


from string import ascii_lowercase
al = list(ascii_lowercase)

def print_rangoli(size):
    # your code goes here
    for i in range(size):
        left = '-'.join(al[size-1: size-i-1: -1])
        mid = al[size-i-1].center(3,'-')
        right = '-'.join(al[size-i: size])
        
        print(
            (left + mid + right).center(2*size + 7, '-')
            )
            
    for j in range(size-1):
        right = al[j+1:size]
        
        
        
        print(
            right
        )
        



if __name__ == '__main__':
    n = int(input())
    print_rangoli(n)
  • 답지 안보고 만든 내 코드....첫 번째만 통과고 나머지는 다 탈락이더라 ㅋㅋㅋㅋ

 

 

두 번째 시도

def print_rangoli(size):
    # your code goes here
    
    al = 'abcdefghijklmnopqrstuvwxyz'
    for i in range(size):
        left = [al[size-j-1] for j in range(i)]
        left.extend(al[size-i-1])
        left.extend(al[size-j] for j in range(i, 0, -1))
        k1 = '-'.join(left)
        
        print(k1.center(4*(size-1)+1, '-'))
        
    for k in range(1,size):

        k2 = al[size-1: k:-1]+ al[k]+ al[k+1: size]
        print('-'.join(k2).center(4*(size-1)+1, '-'))



if __name__ == '__main__':
    n = int(input())
    print_rangoli(n)
    
        
    # y = 2(x-1) + 1
    # y = ax + b
    # y = 4x - 3
    # y = 4(x-1) + 1

 

 

 

 

참조


 

[Python] 알파벳 자동 생성 방법(리스트, 딕셔너리 등)

코딩 테스트나 과제 수행 시 알파벳의 갯수 등의 파악을 위해 알파벳 리스트가 필요한 경우가 있습니다. alphabet_list = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't',

angelplayer.tistory.com

 

Python - 리스트를 문자열로 변환

List를 문자열로 변환하는 방법을 소개합니다. 반복문을 이용하여 리스트를 문자열로 변환하는 코드를 구현, `join()`을 이용하면 다음과 같이 리스트를 문자열로 변환할 수 있음, 또한, `map()`과 joi

codechacha.com

 

리스트 슬라이싱 - Codetorial

리스트 슬라이싱 리스트의 일부 구간 또는 요소를 가져오고 싶을 때 슬라이싱을 사용할 수 있습니다. a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] print(a[3:5]) print(a[:4]) print(a[7:]) [4, 5] [1, 2, 3, 4] [8, 9, 10] a[3:5]는 a[3]

codetorial.net

 

 

Alphabet Rangoli (Python 3)

URL : https://www.hackerrank.com/challenges/alphabet-rangoli/problem

hmkim312.github.io