본문 바로가기

코딩테스트/스터디6

[코테 스터디] 리스트의 모든 원소에서 같은 값 빼기 문제를 풀다가 리스트에서 한 번에 모든 원소에서 같은 값을 뺄 수 있는 방법이 있는지 찾아보다가 발견하여 기록해둔다. [1] map 이용 가장 익숙한 map과 lambda를 이용하는 방법이다. 원래 저장하고 있던 리스트의 각 원소에서 어떤 값을 어떻게 처리할 것인지 lambda의 조건에 작성하면 된다. array2 = list(map(lambda x: x-n, array1)) [2] List Comprehension 이용 array2 = [i-1 for i in array1] + numpy 이용: numpy 설치 후 numpy 내의 subtract 함수를 사용한다. 사용 방법은 아래와 같다. array2 = numpy.subtract(array1, 1) 참고 https://jlim0316.tistory... 2024. 3. 23.
[코테 스터디] sys.stdin.readline()으로 입력 받기 매번 습관적으로 input() 대신 sys.stdin.readline()으로 입력을 받아왔는데 스터디를 하면서 input() 대신 sys.stdin.readline()을 사용하는 이유에 대한 질문이 들어와 정확히 내 머리에도 넣기 위해서 찾아보고 기록해두도록 하겠다. 하나의 입력을 받는 상황에서는 input()으로 입력을 받아도 괜찮지만 반복문으로 여러 줄을 입력 받아야 하는 상황이라면 sys.stdin.readline()으로 입력 받아야 시간 초과가 발생하지 않는다고 한다. 사용 방법은 아래와 같다. import sys n = sys.stdin.readline() 정수로 입력을 받아 사용하기 위해서는 위의 입력 받는 식에 int()함수를 사용한다. import sys n = int(sys.stdin.r.. 2024. 3. 23.
[코테 스터디] Week4 이진 탐색 개념 정리 * 해당 포스팅은 아래 알고리즘 강의를 듣고 정리한 내용입니다. https://www.youtube.com/watch?v=94RC-DsGMLo&list=PLRx0vPvlEmdAghTr5mXQxGpHjWqSz0dgC&index=5 이진 탐색 알고리즘 순차 탐색: 리스트 안에 있는 특정한 데이터를 찾기 위해 앞에서부터 데이터를 하나씩 확인하는 방법 → 가장 기본적인 형태의 데이터 탐색 알고리즘 ex. 선택 정렬에서 매 단계마다 가장 작은 데이터를 찾는 과정 ⇒ 리스트에서 특정 데이터가 존재하는지 검색할 때 별다른 말이 없으면 기본적으로 순차 탐색을 이용하는 것 이진 탐색: 정렬되어 있는 리스트에서 탐색 범위를 절반씩 좁혀가며 데이터를 탐색하는 방법 시간 복잡도: O(logN) 이진 탐색은 시작점, 끝점, 중.. 2024. 3. 23.
[코테 스터디] Week3 정렬 개념 정리 * 해당 포스팅은 아래 알고리즘 강의를 듣고 정리한 내용입니다. https://www.youtube.com/watch?v=KGyK-pNvWos&list=PLRx0vPvlEmdAghTr5mXQxGpHjWqSz0dgC&index=4 정렬 알고리즘 정렬: 데이터를 특정 기준에 따라 순서대로 나열하는 것 → 일반적으로 문제 상황에 따라서 적절한 정렬 알고리즘이 공식처럼 사용됨 ex. 데이터의 개수가 적을 때, 데이터의 개수가 많지만 데이터의 범위가 특정하게 한정되어있을 때, 이미 데이터가 정렬되어있을 때 컴퓨터에게 정확히 어떠한 방식으로 정렬을 수행할 것인지 코드를 사용해서 나타내어야 함 선택 정렬 처리되지 않은 데이터 중 가장 작은 데이터를 선택해 맨 앞에 있는 데이터와 바꾸는 것을 반복 → 매번 현재 범위에.. 2024. 3. 23.
[코테 스터디] Week2 DFS & BFS 개념 정리 * 해당 포스팅은 아래 알고리즘 강의를 듣고 정리한 내용입니다. https://www.youtube.com/watch?v=7C9RgOcvkvo&list=PLRx0vPvlEmdAghTr5mXQxGpHjWqSz0dgC&index=3 이번 주차 개요 탐색: 많은 양의 데이터 중 원하는 데이터를 찾는 과정 → 특정 조건에 맞는 데이터가 존재하는지, 존재한다면 어떤 위치에 존재하는지.. ex. DFS, BFS: ⭐ 매우 자주 등장하는 유형 ⭐ 스택 먼저 들어온 데이터가 나중에 나가는 형식 (선입후출): 먼저 입력되는 데이터가 나중에 출력 → 입구와 출구가 동일한 형태 ex. 박스 쌓기 → 다양한 알고리즘에서 사용되기 때문에 스택의 동작 방법과 사용 방법에 대해 꼭 숙지하기! 동작) 삽입(원소) + 삭제() sta.. 2024. 3. 14.
[코테 스터디] Week1 그리디 & 구현 개념 정리 * 해당 포스팅은 아래 알고리즘 강의를 듣고 정리한 내용입니다. https://www.youtube.com/watch?v=2zjoKjt97vQ&list=PLRx0vPvlEmdAghTr5mXQxGpHjWqSz0dgC&index=2 Greedy (그리디 알고리즘) 탐욕법: 지금 당장 좋은 것만 구함 (최소한의 아이디어) => 크루스칼/다익스트라와 같이 잘 알려진 알고리즘을 제외하고 출제 시 해당 문제를 풀기 위한 최소한의 아이디어를 적절히 떠올릴 수 있어야 풀리도록 출제 ⭐ 정당성 분석 → 단순히 현재 상황에서 가장 좋아보이는 것 => 반복 선택하는 것: 최적해를 보장하는지 검토하는 과정이 필요 탐욕적으로 현재 상황에서 지금 당장 좋은 것만 고르는 방법 = 탐욕법 → 최적의 해를 구할 수 있는지 검토 과정 .. 2024. 3. 9.