문제 내용
사용자로 부터 크기를 입력받고, for 중첩문, 아스키 코드 값(int)을 문자(str)로 변환해주는 chr()함수 등을 이용해서 알파벳 모래시계를 만드는 예제입니다. 출력 되었을 때의 모습은 다음과 같아야 합니다(홀수를 입력했을 때와 짝수를 입력했을 때 모양이 다릅니다.)
예1) 크기 입력: 9 예2) 크기입력:6
A B C D E D C B A A B C C B A
A B C D C B A A B B A
A B C B A A A
A B A A A
A A B B A
A B A A B C C B A
A B C B A
A B C D C B A
A B C D E D C B A
문제 풀이
import math
# 각 라인별로 print 될 문자열 리턴하는 함수
def int2ascii(size):
tmp=[] #빈 리스트 생성 => 함수 끝에서 문자열로 변환
#짝수일때
if size % 2==0:
for i in range(0,int(size/2)):
tmp.append(chr(65+i))
for j in range(int(size/2)-1,-1,-1):
tmp.append(chr(65+j))
#홀수일때
else:
for i in range(0,math.floor(size/2)+1):
tmp.append(chr(65+i))
for j in range(math.floor(size/2)-1,-1,-1):
tmp.append(chr(65+j))
tmp=''.join(tmp) # 더해진 문자 리스트 문자열로 변환
return tmp
# 출력부분
num=int(input("크기 입력:"))
#윗부분~중앙 출력
for i in range(num, 0, -2):
print('{:^100}'.format(int2ascii(i)))
#아랫부분 출력
for i in range(3, num+2, 2):
print('{:^100}'.format(int2ascii(i)))
코드 결과
# 결과 예제1
크기 입력:3
ABA
A
ABA
# 결과 예제2
크기 입력:10
ABCDEEDCBA
ABCDDCBA
ABCCBA
ABBA
AA
ABA
ABCBA
ABCDCBA
ABCDEDCBA
ABCDEFEDCBA
참고
'코드예시👨🏻💻▶️ 파이썬' 카테고리의 다른 글
파이썬 문자열 단어 개수 세기, 역순 출력, 공백 삭제, 단어 빈도 세기 (0) | 2020.10.22 |
---|---|
파이썬 약수 찾기 (0) | 2020.10.21 |
파이썬 자릿수의 팩토리얼을 더하면 자기자신이 되는 숫자 판별 (0) | 2020.10.21 |
파이썬 빙고게임 만들기 (0) | 2020.10.21 |
파이썬 방 평수 계산하기 (0) | 2020.10.21 |