서론
파이써닉하지 못해서 만족스럽지는 않은 정답.
문제
문제
삼각형의 높이 n과 종류 m을 입력받은 후 다음과 같은 삼각형 형태로 출력하는 프로그램을 작성하시오.
< 처리조건 >
종류 1번의 숫자의 진행 순서는 처음에 왼쪽에서 오른쪽으로 진행 한 후 방향을 바꾸어서 이를 반복한다.
입력형식
삼각형의 크기 n(n의 범위는 100 이하의 홀수)과 종류 m(m은 1부터 3사이의 정수)을 입력받는다.
출력형식
위에서 언급한 3가지 종류를 입력에서 들어온 높이 n과 종류 m에 맞춰서 출력한다. 숫자사이는 공백으로 구분한다.
입력된 데이터가 주어진 범위를 벗어나면 "INPUT ERROR!"을 출력한다.
나의 풀이
n,m=map(int, input().split())
if n>100 or n%2 == 0 or m<1 or m>4:
print("INPUT ERROR!")
else:
if m==1:
c=0
for i in range(n):
r=[]
for j in range(i+1):
c+=1
r.append(str(c))
print(' '.join(list(reversed(r)) if i%2==1 else r))
elif m==2:
for i in range(n):
print(' '*i + (str(i)+" ")*((n-i-1)*2+1))
elif m==3:
r=[]
for i in range(n):
r.append(str(i+1)) if i <= n//2 else r.pop()
print(' '.join(r))
단순히 1,2,3에서 요구하는 그대로 작성했다. 알고리즘도 딱히 적용을 안했고 파이썬의 장점을 활용하지도 못했다.
1은 그냥 말그대로 1씩 증가시켜주면서 i가 짝수일 때 reversed 해주어 출력했다.
2는 i를 (n-i-1)*2+1)번 출력한다는 점을 사용하여 출력했다.
3은 r이라는 리스트에 append해주다가 중간을 넘어서면 pop하여 출력했다.
+ 피드백과 새로운 풀이 방법은 언제든지 환영입니다!
'코딩테스트 > [python]정올' 카테고리의 다른 글
[python] 정올 2514 : 문자열 찾기 (0) | 2022.04.20 |
---|---|
[python] 정올 2604 : 그릇 (0) | 2022.04.19 |
[python] 정올 1523 : 별삼각형1 (0) | 2022.03.23 |
[python] 정올 1430 : 숫자의 개수 (0) | 2022.03.22 |
[python] 정올 1339 : 문자삼각형2 (0) | 2022.03.22 |
댓글