다중 반복문4

2022. 9. 29. 00:45파이썬(Python)

반응형

1. 행, 열에 따라 숫자를 다르게 출력

Q) 좌우 반복 출력

- 1~9 숫자인 n을 입력하여 n개의 행에 숫자를 좌우로 반복하여 출력

 

예시)

>> 4

1234
4321
1234
4321
>> 5

12345
54321
12345
54321
12345

 

● 문제 접근

- 홀수 행 : 1부터 n 출력

- 짝수 행 : n부터 1 출력

n=int(input())

for i in range(1,n+1):
    if i%2==1:
        for j in range(1,n+1):
            print(j,end='')
    else:
        for j in range(n,0,-1):
            print(j,end='')
    print()

Q) 상하 반복 출력

- 1~9 숫자인 n을 입력하여 상하로 반복하여 출력

>> 4

1414
2323
3232
4141
>> 5

15151
24242
33333
42424
51515

 

● 문제 접근

- 각 행에는 n개의 수가 있다.

- m번째 행의 홀수 번째 수는 m

- m번째 행의 짝수 번째 수는 n-m+1

n=int(input())

for i in range(1,n+1):
    for j in range(1,n+1):
        if j%2==1:
            print(i,end='')
        else:
            print(n-i+1,end='')
    print()

Q) 좌우 지그재그 출력

- 자연수 n을 입력.

- 1부터 n*n까지 n개의 행으로 지그재그로 출력.

 

예시)

>> 4

1 2 3 4
8 7 6 5
9 10 11 12
16 15 14 13

 

● 문제 접근

- 홀수 번째 행은 1 증가하며 출력

- 짝수 번째 행은 1 감소하며 출력

- m번째 행의 n번째 수에서 m+1번째 행의 1번째 수n 증가

 

n=int(input())

cnt=1
for i in range(1,n+1):
    for j in range(1,n+1):
        if i%2==1:
            print(cnt,end=' ')
            if j==n:
                cnt+=n
            else:
                cnt+=1
        else:
            print(cnt,end=' ')
            if j==n:
                cnt+=n
            else:
                cnt-=1
    print()

2. 모양에 맞는 숫자 출력

Q) 숫자 피라미드

- 자연수 n을 입력

- n개의 행을 가진 숫자 출력

- 행이 증가할수록 열도 증가. 숫자도 증가

 

예시)

>> 4

1
2 3
4 5 6
7 8 9 10

 

● 문제 접근

- 반복문의 변수 i 값에 따라 열을 결정하는 변수 j의 범위가 달라짐

 

n=int(input())

cnt=1
for i in range(1,n+1):
    for j in range(i):
        print(cnt,end=' ')
        cnt+=1
    print()

Q) 숫자 피라미드 2

- 역 직각 삼각형으로 출력

- 1~9 순으로 출력. 9 다음은 1로 돌아와 출력

 

예시)

>> 4

1 2 3 4
  5 6 7
    8 9
      1

 

● 문제 접근

- 숫자를 출력하는 cnt 변수 (초기값 1), 공백을 설정하는 blank 변수 (초기값 0) 2개를 정의한다.

- n개의 행과 n개의 열을 출력.

- 행이 1 증가하면서 blank도 1 증가

- 반복문을 통해 변수가 blank보다 작으면 공백 출력

- blank보다 크거나 같으면 cnt를 출력.

- 출력 후 1 증가. cnt가 10이 되면 1로 초기화

 

n=int(input())

cnt=1
blank=0
for i in range(n):
    for j in range(n):
        if j<blank:
            print(' ',end=' ')
        else:
            print(cnt,end=' ')
            cnt+=1
            if cnt==10: 
                cnt=1
    blank+=1
    print()

 

 

'파이썬(Python)' 카테고리의 다른 글

리스트 (list)  (0) 2022.10.01
다중 반복문5 (+문자열)  (0) 2022.09.30
다중 반복문3  (0) 2022.09.25
다중 반복문2  (0) 2022.09.24
다중 반복문1  (0) 2022.09.24