뱀 행렬 문제:
사용자로부터 숫자 1보다 크고 10보다 작은 값 n을 입력으로 받아서 다음과 같이 뱀의 몸통처럼 증가하는 이차원 배열을 출력하여라.
1 2 3
6 5 4
7 8 9
이런 문제를 오늘 만났습니다.
어떻게 풀까 고민하다가 배열 공부를 덜 마친 상태라 못 풀었음
근데 꼭 풀어보고 싶어서 글으로 정리하기로 함!!
일단 for 반복문으로 푸신 분들이 있고 정답으로 인정해주셔서 만약 나라면 어떻게 풀었을지 강의 끝나고 따로 풀어봄
n = int(input("n? "))
for row in range(1,n+1):
if (row%2!=0):
for j in range((row*n-(n-1)), row*n+1):
print(j, end=" ")
print("")
else:
for j in range(row*n, ((row-1)*n), -1):
print(j, end=" ")
print("")
눈으로 봤을 때 가장 먼저 보이는 점은
홀수번째 줄은 오른쪽으로 갈수록 수가 커진다.
반대로 짝수번째 줄은 오른쪽으로 갈수록 수가 작아진다.
그래서 홀수 / 짝수 줄으로 나눠서 생각해줌.
다음으로는 순서가 어찌되었든 연달아 있는 수임.
따라서 반복문을 각각 작성해줬는데
문제는 반복문 횟수를 어떻게 지정해줄지가 고민이었음
확실한 건 분명 n과 row 등을 계산해서 순서대로 출력할 텐데....
간단하게 적으려고 하니 생각이 안 나서 진짜 푸는 것에만 집중함..
보이는대로 반복횟수를 적어주니 결과적으로 이런 못난 코드가 짜임 ㅜ
사실 너무 정답 맞히기에만 급급한 게 아닌가? 생각이 드는 코드라서 마음이 아픔...
일단 거슬리는 점은
1. 애초에 2차원 배열 문제임
2. 코드가 깔끔하지 못한 것 같음
= 더 좋은 방식이 있을 게 보여서 아쉬움
인데, 일단 오늘은 할 게 너무 많음...
배열 공부하면서 추가적으로 기록을 이어나가려고 함....
'파이썬' 카테고리의 다른 글
[Python] 반복문 도박사 프로그램 기록 (0) | 2024.05.28 |
---|
댓글