Big O 예제

  • O(1)
  • O(n)
  • O(n^2)
In [1]:
x = [1,2,3,4,5,6,7,8,9,10]

# O(1)
print(x[2])

# O(n)
for i in range(len(x)):
  print(x[i], end=' ')

print()
# O(n^2)
for i in range(len(x)):
  for j in range(len(x)):
    print("%2dx%2d=%2d  " % (x[j], x[i], x[i]*x[j]), end=' ')  
  print()
3
1 2 3 4 5 6 7 8 9 10 
 1x 1= 1    2x 1= 2    3x 1= 3    4x 1= 4    5x 1= 5    6x 1= 6    7x 1= 7    8x 1= 8    9x 1= 9   10x 1=10   
 1x 2= 2    2x 2= 4    3x 2= 6    4x 2= 8    5x 2=10    6x 2=12    7x 2=14    8x 2=16    9x 2=18   10x 2=20   
 1x 3= 3    2x 3= 6    3x 3= 9    4x 3=12    5x 3=15    6x 3=18    7x 3=21    8x 3=24    9x 3=27   10x 3=30   
 1x 4= 4    2x 4= 8    3x 4=12    4x 4=16    5x 4=20    6x 4=24    7x 4=28    8x 4=32    9x 4=36   10x 4=40   
 1x 5= 5    2x 5=10    3x 5=15    4x 5=20    5x 5=25    6x 5=30    7x 5=35    8x 5=40    9x 5=45   10x 5=50   
 1x 6= 6    2x 6=12    3x 6=18    4x 6=24    5x 6=30    6x 6=36    7x 6=42    8x 6=48    9x 6=54   10x 6=60   
 1x 7= 7    2x 7=14    3x 7=21    4x 7=28    5x 7=35    6x 7=42    7x 7=49    8x 7=56    9x 7=63   10x 7=70   
 1x 8= 8    2x 8=16    3x 8=24    4x 8=32    5x 8=40    6x 8=48    7x 8=56    8x 8=64    9x 8=72   10x 8=80   
 1x 9= 9    2x 9=18    3x 9=27    4x 9=36    5x 9=45    6x 9=54    7x 9=63    8x 9=72    9x 9=81   10x 9=90   
 1x10=10    2x10=20    3x10=30    4x10=40    5x10=50    6x10=60    7x10=70    8x10=80    9x10=90   10x10=100   

클래스 정의 예

  • 변수(필드)
  • 생성자
  • 메소드
In [2]:
class Student:
  def __init__(self, name, id):
    self.name = name
    self.id = id

  def get_name(self):
    return self.name

  def get_id(self):
    return self.id

best = Student('Lee', 101)
print(best.get_name())
print(best.get_id())
Lee
101

리스트 선언 및 관련 연산 수행

In [3]:
a = []
b = [None] * 10
c = [40, 10, 70, 60]

print(a)
print(b)
print(c)

print(c[0])
print(c[-1])

c.pop()
c.pop(0)
c.append(90)
print(c, len(c))
[]
[None, None, None, None, None, None, None, None, None, None]
[40, 10, 70, 60]
40
60
[10, 70, 90] 3

함수들

  • range(시작, 끝, 증감)
    • range(N)
    • range(시작, N)
    • range(시작, N, 증감)
  • lambda 변수: 식
  • filter(식, 리스트)
  • map(식, 리스트)
In [4]:
even1 = list(filter(lambda x: (x % 2 ==0), [1,2,3,4,5]))
print(even1)

even2 = list(map(lambda x: x * 2, [1,2,3,4,5]))
print(even2)

b = [[170, 65], [180, 58], [150,75], [166, 72], [187, 83]]
b.sort()
print(b)
b.sort(key = lambda x: x[1])
print(b)
[2, 4]
[2, 4, 6, 8, 10]
[[150, 75], [166, 72], [170, 65], [180, 58], [187, 83]]
[[180, 58], [170, 65], [166, 72], [150, 75], [187, 83]]

순환(재귀; recursion)

In [5]:
def sum1(n):
  s = 0
  for i in range(1, n+1):
    s = s + i
  return s

def sum2(n):
  if n <= 1:
    return 1
  else:
    return n + sum2(n-1)

print(sum1(10))
print(sum2(10))
55
55

n 팩토리얼(factorial) 구하기

In [5]:

남태평양 섬나라 관광

In [5]:

연습문제 풀기

In [5]: