오늘은 프로젝트 주에 못한 알고리즘을 푸는 시간을 가졌다.
다른 팀원에 비해 많이 못풀어서 오늘 내일은
알고리즘을 열심히 풀 생각이다!
인상 깊었던 풀이 몇가지를 뽑아 봤다
프로그래머스
https://school.programmers.co.kr/learn/courses/30/lessons/120850
문자열 정렬하기(1)
나는 이문제를 보고 '문자들을 뺀 나머지들을 리스트 형식으로 넣어주면 되지 않을까?' 라는 생각이 들었고 모듈의 사용 없이 알고리즘적인 사고로 풀기를 원해서 try-except 구문을 떠올렸다.
def solution(my_string):
answer = []
for a in my_string:
try:
answer.append(int(a))
except ValueError:
my_string.strip(a)
answer.sort(reverse=False)
return answer
이처럼 for문으로 my_string을 받아와 하나씩 answer에 정수형으로 넣어주고 만약 문자가 있어 정수형으로 변환을 못시키고 ValueError 가 나오면 except구문에서 strip() 함수를 이용해 my_string에서 그 문자를 빼주는 형식으로 진행하였다.
다른 팀원분들의 코드:
# 지현님 코드
def solution(my_string):
answer = []
for value in my_string:
if value.isdigit() == True:
answer.append(int(value))
return sorted(answer)
# 엘리사님 코드
def solution(my_string):
answer = []
for x in my_string:
if x.isdigit():
answer.append(int(x))
return sorted(answer)
# 상빈님 코드-1
def solution(my_string):
answer = []
for i in list(my_string):
if i.isalpha() == False:
answer.append(int(i))
answer.sort()
return answer
# 상빈님 코드-2
import re
def solution(my_string):
return [int(n) for n in sorted(re.findall(r'\d', my_string))]
프로세스
스레드
1. 프로세스
- 프로그램이 실행되는 곳
- 각각의 프로세스는 영향을 받지 않는다. ( = 프로세스끼리는 자원을 공유하지 않는다 )
2. 스레드
- 하나의 프로세스의 실행 흐름으로서의 구성요소
- 스레드는 다른 스레드에 영향이 갈 수 있다. ( = 스레드는 프로세스의 자원을 공유한다 )
3. 예제
def foo():
print('child process', os.getpid())
if __name__ == '__main__':
print('parent process', os.getpid())
child1 = Process(target=foo).start()
child2 = Process(target=foo).start()
child3 = Process(target=foo).start()
실행해보면 process는 같은 함수라도 서로 영향을 받지 않기 때문에 pid가 다 다른것을 알 수 있다. 하지만 스레드 같은 경우엔 다르다.
def foo():
print('process id', os.getpid())
if __name__ == '__main__':
print('process id', os.getpid())
thread1 = threading.Thread(target=foo).start()
thread2 = threading.Thread(target=foo).start()
thread3 = Process(target=foo).start()
thread1과 thread2 의 pid는 같으나, thread3같은 경우엔 Process를 통해 만들기때문에 pid가 다른것을 확인 할 수 있다.
'내일 배움 캠프 > TIL' 카테고리의 다른 글
TIL) 6주차 4일 (0) | 2023.04.24 |
---|---|
TIL) 6주차 3일 (0) | 2023.04.21 |
TIL) 6주차 1일 (0) | 2023.04.18 |
TIL) 5주차 5일 (0) | 2023.04.15 |
TIL) 5주차 4일 (0) | 2023.04.14 |