-
19.6 심사문제 역삼각형 모양 별출력코딩도장 심사문제모음 2020. 10. 8. 21:39728x90
코딩 도장 Python
19.6 심사 문제 역삼각형모양의 별출력 (입력값)
표준 입력으로 삼각형의 높이가 입력됩니다. 입력된 높이만큼 산 모양으로 별을 출력하는 프로그램을 만드세요(input에서 안내 문자열은 출력하지 않아야 합니다). 이때 출력 결과는 예제와 정확히 일치해야 합니다. 모양이 같더라도 공백이나 빈 줄이 더 들어가면 틀린 것으로 처리됩니다.
사용된 코드
1 .int
2. input
3. for 문
4 if 문
5. print
6. range
더보기# 5 (input)
# 0 4 출력 ( 0 1 2 3 4 5 6 7 8)
# 1 345 출력 ( 0 1 2 3 4 5 6 7 8)
# 2 23456 출력 ( 0 1 2 3 4 5 6 7 8)
# 3 1234567 출력 ( 0 1 2 3 4 5 6 7 8)
# 4 012345678 출력 ( 0 1 2 3 4 5 6 7 8)
# 3 (input)
# 0 - 2 출력 ( 0 1 2 3 4)
# 1 - 123 출력 ( 0 1 2 3 4)
# 2 - 01234 출력 ( 0 1 2 3 4)
첫 접근 방법
위와 같이 보았을때 처음에는 rangn(2*H-1) 으로 range 값에 따라 바뀌도록 해보았지만, 뻘짓이었다.
1. 첫 코드에서는 입력값 -1 출력
2. 아래 줄로 내려갈수록 초기값을 기준으로 가지치듯 하나씩 추가되는 것을 확인하였고
3. range(2*H-1)등 개 뻘짓을 한 결과, 약 20분이나 고민한 끝에 한방에 풀지 못하고 힌트를 봐야했다.
풀이
결론 : for 반복문 두개를 결합
1. for문법에 reversed 메서드를 결합해 아래와 같은 출력문을 하나 만든다.
더보기H = int(input())
for i in range(H):
for j in reversed(range(H)):
if i >= j :
print('*', end='')
else :
print(' ', end='')
2. for문법으로 아래와 같은 출력문을 하나 더 만든다.
더보기for j in range(H) :
if i > j :
print('*', end='')
else:
print(' ', end='')
3. 이 둘을 합쳐 하나의 for 문안의 루프를 만들고, 바깥루프의 for문의 print() 출력 문구를 추가해 줄바꿈을 해주면 완성.
더보기H = int(input())
for i in range(H):
for j in reversed(range(H)):
if i >= j :
print('*', end='')
else :
print(' ', end='')
for j in range(H) :
if i > j :
print('*', end='')
else:
print(' ', end='')
print()
※ 실제 코딩 도장의 해법과 다를 수 있으며, 답은 여러가지가 존재합니다.
코딩 지적 정말 감사히 받겠습니다.
※ 점섬의 텍스트 박스가 접은글이었네요.. 클릭 감사합니다.
728x90'코딩도장 심사문제모음' 카테고리의 다른 글
23.7 지뢰찾기(어려움..) (0) 2020.10.18 23.6 연습문제 3차원 리스트 만들기 (0) 2020.10.15 22.10 심사문제 2의 거듭제곱 리스트 생성하기 (0) 2020.10.14 21.6 심사문제 별 그리기(터틀 그래픽스) (0) 2020.10.12 20.8 심사문제 5와 7의 배수, 공배수 처리하기(입력값) (0) 2020.10.09