본문 바로가기

코드연습/Python

HackerRank | Text Alignment

728x90

문자 배열 출력, 정돈된 형식으로 출력하거나, 굳이 배열을 짜서 출력 할 필요까지는 없을 때 유용할 듯.

개인적으로는 GUI에서 굳이 위치를 맞추기 위해 좌표를 구상하거나 크기를 잡을 필요가 없을 것 같아 유용해 보인다.

 

#Replace all ______ with rjust, ljust or center. 

thickness = int(input()) #This must be an odd number
c = 'H'

#Top Cone
for i in range(thickness):
    print((c*i).rjust(thickness-1)+c+(c*i).ljust(thickness-1))

#Top Pillars
for i in range(thickness+1):
    print((c*thickness).center(thickness*2)+(c*thickness).center(thickness*6))

#Middle Belt
for i in range((thickness+1)//2):
    print((c*thickness*5).center(thickness*6))    

#Bottom Pillars
for i in range(thickness+1):
    print((c*thickness).center(thickness*2)+(c*thickness).center(thickness*6))    

#Bottom Cone
for i in range(thickness):
    print(((c*(thickness-i-1)).rjust(thickness)+c+(c*(thickness-i-1)).ljust(thickness)).rjust(thickness*6))

세 가지 기능이 있다. 왼쪽 채움, 오른쪽 채움, 가운데 채움.

  1. 문자열.ljust(채울 칸 수, '채울 문자') # 문자를 왼 정렬, 여백에 채울 문자로 채움. (just가 정렬이라는 의미인가?)
  2. 문자열.rjust(채울 칸 수, '채울 문자') # 문자를 오른 정렬, 여백에 채울 문자로 채움.
  3. 문자열.center(채울 칸 수, '채울 문자') # 문자를 가운데 정렬, 여백에 채울 문자로 채움.

기능은 단순한데 확실히 보여지는 부분이 뭔가 한거 같은 느낌이 난다. 코드를 깊게 이해하지 못하는 분들이 이런 감성적인 부분에서 잘 포장하는 것도 본인의 역량을 잘 보이는 방법아닐까.


결과.

    H    
   HHH   
  HHHHH  
 HHHHHHH 
HHHHHHHHH
  HHHHH               HHHHH             
  HHHHH               HHHHH             
  HHHHH               HHHHH             
  HHHHH               HHHHH             
  HHHHH               HHHHH             
  HHHHH               HHHHH             
  HHHHHHHHHHHHHHHHHHHHHHHHH   
  HHHHHHHHHHHHHHHHHHHHHHHHH   
  HHHHHHHHHHHHHHHHHHHHHHHHH   
  HHHHH               HHHHH             
  HHHHH               HHHHH             
  HHHHH               HHHHH             
  HHHHH               HHHHH             
  HHHHH               HHHHH             
  HHHHH               HHHHH             
                    HHHHHHHHH 
                     HHHHHHH  
                      HHHHH   
                       HHH    
                        H

코드에 들어가는 thickness니 곱셈이니 하는 것은 출력할 구문을 미리 설계 한 뒤에 변수로 맞춰 주는 것이 좋을 것 같다.

'코드연습 > Python' 카테고리의 다른 글

HackerRank | Day 8: Dictionaries and Maps  (0) 2021.12.29
HackerRank | Capitalize!  (0) 2021.12.19
HackerRank | Alphabet Rangoli  (0) 2021.12.19
HackerRank | String Formatting  (0) 2021.12.08
HackerRank | Nested Lists 풀이  (0) 2021.12.08