본문 바로가기

파이썬17

[ Python ] 파이썬 비동기 처리 | asyncio | 비동기란 무엇인가 | 비동기 예제 비동기 함수란? 비동기 함수에 대해 서술하기 전, 동기 함수의 개념부터 잡고 가야한다. 우리가 통상적으로 써왔던 함수가 동기 함수인데, def test(): print('1') print('2') print('3') def main(): test() main() 위 코드를 보면, main 함수는 test를 실행하고, 1,2,3 이 순서대로 출력된 이후 종료된다. main 함수는 test 함수가 종료될 때까지 기다리는 것이다. 너무 당연한 말 같다. 근데 만약, main 이 test 함수가 1,2,3을 출력하는 동안에 처리해야하는 일이 있다면 어떻게 해야할까? 예시는 이렇지만, 만약 엄청나게 많은 데이터를 출력해야하는 상황이라면? 마냥 test 함수가 종료되어 정상적으로 return 되기만을 기다리는 것은.. 2021. 12. 8.
[ Python ] 이것이 코딩테스트다! | 당장 좋은 것만 선택하는 그리디 최근들어 나의 알고리즘 지식이 굉장히 빈약하다는 것을 깨닫고 책을 빌려 읽기 시작했다. 나동빈님이 쓰신 책이길래 우와! 하면서 계속 읽었던 것 같다. 나동빈씨,,, 정말 리스펙,,, 사전에 외우고 있지 않아도 풀 수 있을 가능성이 높은 문제 유형 그리디 알고리즘 그리디 알고리즘은 현재 상황에서 지금 당장 좋은 것만 고르는 것을 말한다. 보통 코테에서 출제되는 그리디 알고리즘 유형 문제는 문제를 풀기 위한 최소한의 아이디어를 떠올릴 수 있는 능력을 요구한다고 한다. 즉, 문제를 접했을 때 단순하게 현재 상황에서 가장 좋아보이는 것만을 선택해도 문제를 풀 수 있는지를 파악할 수 있어야한다. Tip ! 그리디 알고리즘은 기준에 따라 좋은 것을 선택하는 알고리즘이기 때문에서 문제에서 힌트를 준다. "가장 큰 순.. 2021. 8. 2.
[ Python ] 상하좌우 탐색 하나하나 수동으로 해줄 필요 없이, dx와 dy 리스트를 만들어 하면 편리하다. dx = [-1,0,1,0] dy = [0,1,0,-1] n = int(input()) a = [[0]*(n+2)]+[[0]+list(map(int,input().split()))+[0] for _ in range(n)]+[[0]*(n+2)] cnt=0 for i in range(1,n+1): for j in range(1,n+1): if all(a[i][j] > a[i+dx[k]][j+dy[k]] for k in range(4)): cnt+=1 print(cnt) dx = [-1,0,1,0] dy = [0,1,0,-1] 이거랑 all함수 기억하고 있으면 될 것 같다. 위 코드는 위 그림과 같은 리스트 배열에서 상하좌우 값보.. 2021. 6. 23.
[ Python ] 파이썬 에라토스테네스의 체 n = int(input()) ch = [0]*(n+1) cnt=0 for i in range(2,n+1): if ch[i]==0: cnt+=1 for j in range(i,n+1,i): ch[j]=1 print(cnt) 20 을 넣으면 8이 출력된다. 이 코드는 소수의 개수를 출력한다. 2021. 6. 22.