자료구조와 알고리즘 실습 | Data Structures & Algorithms Lab
함수 정의와 호출: 덧셈 함수를 만들고 사용합니다
## 함수 선언 부분 ## def plus( v1, v2) :
## 전역 변수 부분 ## hap = 0 ## 메인 코드 부분 ##
Function definition and call: create and use an addition function
## Function Declarations ## def plus( v1, v2) :
## Global Variables ##
hap = 0
## Main Code ##
hap = plus(100, 200)
print("Result of plus(100,200) is %d" % hap)
지역 변수와 전역 변수의 차이를 확인합니다
## 함수 선언 부분 ## def func1():
def func2():
## 전역 변수 부분 ## a = 20 # 전역 변수 ## 메인 코드 부분 ##
Demonstrates the difference between local and global variables
## Function Declarations ## def func1():
def func2():
## Global Variables ## a = 20 # global variable ## Main Code ## func1() func2()
global 키워드로 전역 변수를 함수 내에서 수정합니다
## 함수 선언 부분 ## def func1():
def func2():
## 전역 변수 부분 ## a = 20 # 전역 변수 ## 메인 코드 부분 ##
Uses the global keyword to modify a global variable inside a function
## Function Declarations ## def func1():
def func2():
## Global Variables ## a = 20 # global variable ## Main Code ## func1() func2()
여러 값을 리스트로 반환하는 함수를 구현합니다
## 함수 선언 부분 ## def multi(v1, v2):
## 전역 변수 부분 ## myList = [] hap, sub = 0, 0 ## 메인 코드 부분 ##
Implements a function that returns multiple values via a list
## Function Declarations ## def multi(v1, v2):
## Global Variables ##
myList = []
hap, sub = 0, 0
## Main Code ##
myList = multi(100, 200)
hap = myList[0]
sub = myList[1]
print("Values returned by multi() ==> %d, %d" % (hap, sub))
1차원 배열을 생성하고 합계를 계산합니다
aa = []
for i in range(0, 4) :
aa.append(0)
for i in range(0, 4) :
aa[i] = int(input( str(i+1) + "번째 숫자 : " ))
hap = 0
for i in range(0, 4) :
hap = hap + aa[i]
print(" 합계 ==> %d " % hap)
Creates a 1D array and computes its sum
aa = []
for i in range(0, 4) :
aa.append(0)
for i in range(0, 4) :
aa[i] = int(input( str(i+1) + "th number: " ))
hap = 0
for i in range(0, 4) :
hap = hap + aa[i]
print(" Sum ==> %d " % hap)
리스트의 다양한 내장 함수(append, pop, sort 등)를 실습합니다
myList = [30, 10, 20]
print("현재 리스트 : %s" % myList)
myList.append(40)
print("append(40) 후의 리스트 : %s" % myList)
print("pop() 으로 추출한 값 : %s" % myList.pop())
print("pop() 후의 리스트 : %s" % myList)
myList.sort()
print("sort() 후의 리스트 : %s" % myList)
myList.reverse()
print("reverse() 후의 리스트 : %s" % myList)
print("20 값의 위치 : %d" % myList.index(20))
myList.insert(2, 222)
print("insert(2, 222) 후의 리스트 : %s" % myList)
myList.remove(222)
print("remove(222) 후의 리스트 : %s" % myList)
myList.extend( [77 , 88, 77] )
print("extend([77, 88, 77]) 후의 리스트 : %s" % myList)
print("77 값의 개수 : %d" % myList.count(77))
Practices various list built-in methods (append, pop, sort, etc.)
myList = [30, 10, 20]
print("Current list: %s" % myList)
myList.append(40)
print("List after append(40): %s" % myList)
print("Value from pop(): %s" % myList.pop())
print("List after pop(): %s" % myList)
myList.sort()
print("List after sort(): %s" % myList)
myList.reverse()
print("List after reverse(): %s" % myList)
print("Index of 20: %d" % myList.index(20))
myList.insert(2, 222)
print("List after insert(2,222): %s" % myList)
myList.remove(222)
print("List after remove(222): %s" % myList)
myList.extend( [77 , 88, 77] )
print("List after extend([77,88,77]): %s" % myList)
print("Count of 77: %d" % myList.count(77))
2차원 리스트를 생성하고 값을 저장합니다
list1 = [ ]
list2 = [ ]
value=1
for i in range(0, 3) :
for k in range(0, 4) :
list1.append(value)
value += 1
list2.append(list1)
list1 = []
for i in range(0, 3) :
for k in range(0, 4) :
print("%3d" % list2[i][k], end = " ")
print(" ")
Creates and populates a 2D list
list1 = [ ]
list2 = [ ]
value=1
for i in range(0, 3) :
for k in range(0, 4) :
list1.append(value)
value += 1
list2.append(list1)
list1 = []
for i in range(0, 3) :
for k in range(0, 4) :
print("%3d" % list2[i][k], end = " ")
print(" ")
딕셔너리를 생성하고 키-값 쌍을 다룹니다
singer = {}
singer['이름'] = '트와이스'
singer['구성원수'] = 9
singer['데뷰'] = '서바이벌 식스틴'
singer['대표곡'] = 'SIGNAL'
for k in singer.keys() :
print('%s --> %s' % (k, singer[k]))
Creates a dictionary and handles key-value pairs
singer = {}
singer['name'] = 'TWICE'
singer['members'] = 9
singer['debut'] = 'Survival Sixteen'
singer['hit_song'] = 'SIGNAL'
for k in singer.keys() :
print('%s --> %s' % (k, singer[k]))
랜덤 로또 번호 생성기를 구현합니다
import random ## 전역 변수 선언 부분 ## totalLotto = [] lotto = [] pickNum = 0 count = 0 ## 메인 코드 부분 ##
Implements a random lotto number generator
import random
## Global Variables ##
totalLotto = []
lotto = []
pickNum = 0
count = 0
## Main Code ##
print("** Starting lotto number generation. **")
count = int(input('How many draws?'))
for _ in range(count) :
lotto = []
while True :
pickNum = random.randint(1, 45)
if pickNum not in lotto :
lotto.append(pickNum)
if len(lotto) >= 6 :
break
totalLotto.append(lotto)
for lotto in totalLotto :
lotto.sort()
print('Auto number--> ', end = ' ')
for i in range(0, 6) :
print("%2d" % lotto[i], end = ' ')
print()
텍스트 파일을 읽어 글자 빈도를 분석합니다
## 전역 변수 선언 부분 ##
poet = '''
나 보기가 역겨워 가실 때에는 말없이 고이 보내 드리오리다
영변에 약산 진달래꽃 아름 따다 가실 길에 뿌리오리다
가시는 걸음 걸음 놓인 그 꽃을 사뿐히 즈려 밟고 가시옵소서
나 보기가 역겨워 가실 때에는 죽어도 아니 눈물 흘리오리다
'''
countDic = {}
## 메인 코드 부분 ##
Reads a text file and analyzes character frequency
## Global Variables ##
poet = '''
When you leave, sick of the sight of me, I will let you go without a word
I will gather azaleas from Yaksan, Yeongbyeon, and scatter them on your path
Step by step on the flowers before you, tread softly as you go
When you leave, sick of the sight of me, even in death I will not shed tears
'''
countDic = {}
## Main Code ##
if __name__ == "__main__" :
for ch in poet :
if ch.isalpha() :
if ch in countDic :
countDic[ch] += 1
else :
countDic[ch] = 1
print('Original', poet)
print('-------------------------')
print('Character frequency (4+ times)')
print('-------------------------')
for key in countDic :
if countDic[key] >= 4 :
print(key, '-->', countDic[key])
사칙연산 결과를 리스트로 반환하는 함수를 작성합니다
## 함수 선언 부분 ## def multi(v1, v2) :
## 전역 변수 선언 부분 ## myList = [] hap, sub = 0, 0 ## 메인 코드 부분 ##
Writes a function returning arithmetic results as a list
## Function Declarations ## def multi(v1, v2) :
## Global Variables ##
myList = []
hap, sub = 0, 0
## Main Code ##
myList = multi(100, 20)
print("Values returned by multi() ==> ", (myList))
2차원 리스트에 값을 채우고 출력합니다
list1 = []
list2 = []
value = 12
for i in range(0, 4) :
for k in range(0, 3) :
list1.append(value)
value -= 1
list2.append(list1)
list1 = []
for i in range(0, 4) :
for k in range(0, 3) :
print("%3d" % list2[i][k], end = " ")
print("")
hap = 0
for i in range(0, 4) :
for k in range(0, 3) :
hap += list2[i][k]
print("배열의 합계 ==>", hap)
Fills and prints a 2D list
list1 = []
list2 = []
value = 12
for i in range(0, 4) :
for k in range(0, 3) :
list1.append(value)
value -= 1
list2.append(list1)
list1 = []
for i in range(0, 4) :
for k in range(0, 3) :
print("%3d" % list2[i][k], end = " ")
print("")
hap = 0
for i in range(0, 4) :
for k in range(0, 3) :
hap += list2[i][k]
print("Array Sum ==>", hap)