Computer Science/자료구조

[4.18] 01-2 반복되는 알고리즘 (마무리)

토마토. 2021. 4. 18. 17:29

 

직사각형 넓이로 변의 길이 구하기

- 으음..

- 1 * 2를 출력했으면, 2 * 1은 출력 ㄴㄴ인데..

n = int(input('넓이는 : '))
for i in range(1, n+1):
  if n % i == 0:
    print(str(i), '*', str(n // i))
n = int(input('넓이는 : '))
done = set()
for i in range(1, n+1):
  if n % i == 0 and n // i not in done:
    done.add(i)
    print(str(i), '*', str(n // i))

예제 코드

- ( i < area ^ 1/2 범위에서 for문 돌림)

- (if area % i : -> 나누어떨어지지 않을 때 첨으로 돌아감)

area = int(input('직사각형의 넓이를 입력하세요 : '))

for i in range(1, area + 1):
  if i * i > area : break
  if area % i : continue
  print(f'{i} * {area // i}')

10~ 99사이 난수 n개 생성하기 - 이때 난수 13이 나오면 중단함

import random

n = int(input('난수의 개수를 입력하세요: '))


for i in range(n+1):
  x = random.randint(10, 99)
  if x == 13:
    break
  print(x)

 

반복문 건너뛰기와 여러 범위 스캔하기

8을 빼고 n까지 출력하기

n = int(input('n : '))

for i in range(1, n+1):
  if i == 8:
    continue
  print(i)

예제 코드 - 효율적인 방법

for i in list(range(1, 8)) + list(range(9, 13)):
  print(i)

* 범위를 정할 때 대우 명제를 이용할 수 있음

 

다중 루프 알아보기

구구단 곱셈표 출력하기

출력 : 구구단 곱셈표(1단 ~ 9단)

오..

for i in range(1, 10):
  for j in range(1, 10):
    print(i * j, end = ' ')
  print()

*로 직각이등변삼각형 출력하기

이등변 하는 법 : 높이 = 밑변 = 짧은 변 n

*

**

***

****

*****

 

line = 0
for i in range(1, 15): #줄
  line += 1
  print('*'*line)
  print()

오른쪽 아래가 직각인 직각이등변삼각형 출력하기

굿

line = 0
for i in range(1, 15): #줄
  line += 1
  print(' ' * (14 - line) + '*'*line)
  print()

cf) 파이썬의 객체, 변수

- 변수는 객체를 참조하는 객체에 연결된 이름이다.

- 모든 객체는 메모리를 차지하고, 자료형뿐만 아니라 식별 번호를 가진다. 

-> n이라는 변수명과 17의 식별번호를 bind 결합해주는 것임.

-> '객체에 이름을 부여'

 

1장 다 풀었다!