- 알고리즘 & 자료구조
자료구조와 알고리즘을 배우는 이유는 단순하게 비유하면
과연 책을 쌓아두는 것이 꺼낼 때 편할까, 책을 책장에 넣어 두는 것이 편할까?
생각해보면 책장에 넣어두는 것이 편하다.
이처럼 우리는 자료구조와 사용법을 배우고 어떤 경우에 조금 더 편할까? 를 고민해보기 위해 알고리즘과 자료구조를 배우는 것이다.
1. 스택 (Stack)
최근에 (3-1학기) 컴퓨터 아키텍쳐에서 0주소 방법에서 사용하던 스택이다. 후입선출(LIFO)의 구조를 가지고 있다. 단순하게 생각하면 길고 좁은 컵에 큰 사각얼음을 계속 채운다고 생각하면 편하다.
얼을을 넣는 과정을 Push, 얼음을 빼는 과정을 Pop이라고 한다.
간단하게 list로 구현해보면
x = []
x.append('O')
x.append('ㅅ')
x.append('X')
x.pop() #X
이런식이 된다.
2. 큐(Queue)
선입선출(FIFO)의 구조를 가진 친구다. 대기 행렬이라고도 한다. 간단하게 예시를 들어보면 1인승 에스컬레이터라고 생각하면 편하다.
둘이 사용되어야하는 상황을 생각해보자
1) 놀이기구를 타기 위해 줄을 서는 경우
2) 맨 마지막에 넣은 원소가 궁금한 경우
파이썬 기초 - 오늘 배운 코드 중에 맨날 구글링해서 사용하는 open관련, 재미있는거 발견해서 몇 글자 끄적인다.
그리고 약간 궁금한게 보통 판다스 사용해서 파일 읽어오지 않나..? 아니 그냥 궁금해서
일단 재미있는거 먼저
- string.startswith(string, index)
말 그대로 starts with 다 어떤 것으로 시작하는지 찾아준다 예시 코드로는
a_string = "the quick brown fox jumps over the lazy dog. the quick brown fox jumps over the lazy dog"
a = input("Please input string that you want to remove. : ")
print(a_string.split(a))
indices = [index for index in range(len(a_string)) if a_string.startswith(a, index)]
if(len(indices)!=0):
for i in indices:
print(a_string[i:i+len(a)])
```
Please input string that you want to remove. : brown
['the quick ', ' fox jumps over the lazy dog. the quick ', ' fox jumps over the lazy dog']
brown
brown
```
뭐 이런식으로 시작되는 곳의 index를 반환해서 간단하게 그걸로 잘라봤다. 왜냐고? 어 그냥 split 배워서
- open
sum = 0
scores = [70,60,55,75,95,90,80,80,85,100]
with open('score.txt',"w") as f:
for score in scores:
f.write(f"{score}\n")
with open('score.txt',"r") as f:
t4 = f.readlines()
for score in t4:
sum += int(score.strip())
mean = sum/len(scores)
mean
그냥 파일 쓰고 읽고 간단하게 사용한 예제다.
'미래내일일경험 - 빅리더(23.06~23.12) > 교육' 카테고리의 다른 글
[크롤링] 크롤링 정리 (0) | 2023.07.10 |
---|---|
[스터디챌린지] ICT융합대학 스터디 챌린지 1주차(7/1 ~ 7/7) (0) | 2023.07.07 |
[파이썬] 반복문 없이 리스트 element 출력하기 (0) | 2023.07.06 |
[선형대수] 토플리츠(Toeplitz) 행렬 (0) | 2023.07.05 |
[빅리더] 6/27 TIL (0) | 2023.06.27 |