온라인 개발환경: https://replit.com/languages/python3자신만의 소스코드 관리하기ex) https://github.com/ndb796/Python-Competitive-Programming-Team-Notes복잡도: 알고리즘
정수, 실수, 지수표현 방식정수형: 양의 정수, 음의 정수, 0실수형: 변수에 소수점을 붙인 수를 대입하면 실수형 변수로 처리소수부가 0이거나, 정수부가 0인 소수는 0 생략→ 5.0\-.7 → -0.7지수표현 방식: 임의의 큰 수를 표현하기 위해 자주 사용 컴퓨
자주 사용되는 표준 입력 방법input(): 한 줄의 문자열을 입력 받는 함수map(): 리스트의 모든 원소에 각각 특정한 함수를 적용할 때 사용공백을 기준으로 구분된 데이터를 입력 받을 때는list(map(int, input().split()))공백을 기준으로 구분된
그리디 알고리즘(탐욕법): 현재 상황에서 지금 당장 좋은것만 고르는 방법문제를 풀기 위한 최소한의 아이디어를 떠올릴 수 있는 능력을 요구함정당성 분석이 중요함, 단순히 가장 좋아보이는 것을 반복적으로 선택해서 최적의 해를 구할 수 있는지 검토하는 과정이 필요코딩테스트에
구현: 머릿속에 있는 알고리즘을 소스코드로 바꾸는 과정알고리즘 대회에서 구현 문제: 풀이를 떠올리는 것은 쉽지만 소스코드로 옮기기 어려운 문제알고리즘은 간단한데 코드가 지나칠 만큼 길어지는 문제실수 연산을 다루고, 특정 소수점 자리까지 출력해야 하는 문제문자열을 특정
스택과 큐 자료구조 그래프 탐색 알고리즘: DFS / BFS 탐색(Search)이란 많은 양의 데이터 중 원하는 데이터를 찾는 과정 DFS와 BFS가 대표적 그래프 탐색 알고리즘, 코테에 자주 등장 스택 자료구조 먼저 들어온 데이터가 나중에 나가는 형식(
DFS (Depth-First Search): 깊이 우선 탐색, 그래프에서 깊은 부분을 우선적으로 탐색하는 알고리즘스택 자료구조(혹은 재귀 함수)를 이용탐색 시작 노드를 스택에 삽입하고 방문 처리를 함스택의 최상단 노드에 방문하지 않은 인접한 노드가 하나라도 있으면 그
선택 정렬 정렬(sorting)이란 데이터를 특정한 기준에 따라 순서대로 나열하는 것을 말함 문제 상황에 따라 적절한 정렬 알고리즘이 공식처럼 사용됨 데이터의 개수가 적을 때, 데이터의 개수가 많지만 데이터의 범위가 특정범위로 한정되어 있을 때, 이미 데이
이진 탐색 알고리즘: 정렬되어 있는 리스트에서 특정한 데이터를 빠르게 탐색할 수 있도록 해주는 알고리즘순차 탐색: 리스트 안에 있는 특정한 데이터를 찾기 위해 앞에서부터 데이터를 하나씩 확인하는 방법 (단순히 데이터를 하나씩 확인하는 것)이진 탐색: 정렬되어 있는 리스
다이나믹 프로그래밍: 메모리를 적절히 사용하여 수행 시간 효율성을 비약적으로 향상시키는 방법이미 계산된 결과(작은 문제)는 별도의 메모리 영역에 저장하여 다시 계산하지 않음일반적으로 두 가지 방식(Top-down, Bottom-up)으로 구현됨동적 계획법이라고도 부름다
최단 경로 문제최단 경로 알고리즘은 가장 짧은 경로를 찾는 알고리즘을 의미함다양한 문제 상황: 한 지점에서 다른 한 지점까지의 최단 경로, 한 지점에서 다른 모든 지점까지의 최단 경로, 모든 지점에서 다른 모든 지점까지의 최단 경로각 지점은 그래프에서 노드로 표현, 지
모든 노드에서 다른 모든 노드까지의 최단 경로를 모두 계산함다익스트라 알고리즘과 마찬가지로 단계별로 거쳐가는 노드를 기준으로 알고리즘을 수행다만 매 단계마다 방문하지 않은 노드 중 최단 거리를 갖는 노드를 찾는 과정이 필요하지 않음2차원 테이블에 최단 거리 정보를 저장
문제 해결 아이디어한 도시에서 다른 도시까지의 최단 거리 문제로 치환N과 M의 범위가 충분히 크기 때문에 우선순위 큐를 활용한 다익스트라 알고리즘을 구현함 코드문제 해결 아이디어전형적인 최단 거리 문제이므로 최단 거리 알고리즘을 이용해 해결함N의 크기가 최대 100
서로소 집합: 공통 원소가 없는 두 집합 서로소 집합 자료구조서로소 부분집합들로 나누어진 원소들의 데이터를 처리하기 위한 자료구조두 종류의 연산을 지원함합집합(Union): 두 개의 원소가 포함된 집합을 하나의 집합으로 합치는 연산찾기(Find): 특정한 원소가 속한
신장 트리 (Spanning Tree)그래프에서 모든 노드를 포함하면서 사이클이 존재하지 않는 부분 그래프모든 노드가 포함되어 서로 연결되면서 사이클이 존재하지 않는 다는 조건은 트리의 조건이기도 함 최소 신장 트리최소한의 비용으로 구성되는 신장 트리를 찾아야할 때e
사이클이 없는 방향 그래프의 모든 노드를 방향성에 거스르지 않도록 순서대로 나열하는 것ex) 선수과목을 고려한 학습 순서 설정 위 세 과목을 듣기 위한 적절한 학습 순서는? → 자료구조 → 알고리즘 → 고급 알고리즘 (O) → 자료구조 → 고급 알고리즘 → 알고리
소수: 1보다 큰 자연 수 중 1과 자기 자신을 제외한 자연수로는 나누어떨어지지 않는 자연수어떠한 자연수가 소수인지 아닌지 판별하는 문제가 자주 출제됨기본 코드소수 판별 알고리즘의 시간 복잡도2부터 X-1까지의 모든 자연수에 대하여 연산을 수행해야 하므로 모든 수를 하
투 포인터(Two pointers) 알고리즘: 리스트에 순차적으로 접근해야 할 때 두 개의 점의 위치를 기록하면서 처리하는 알고리즘흔히 2, 3, 4, 5, 6, 7번 학생을 지목해야 할 때 간단히 ‘2번부터 7번까지의 학생’이라고 부르는 것과 유사한 개념리스트에 담긴
정해진 목적에 따라서 동작하는 완성된 프로그램을 개발하는 것을 요구하는 코딩 테스트 유형 개발형 코딩 테스트는 분야에 따라 상세 요구사항이 다르지만, 분야에 상관없이 꼭 알아야하는 개념과 도구 등이 있음서버와 클라이언트클라이언트가 요청(Request)을 보내면 서버가
코딩 테스트에서 많이 활용되는 기초 파이썬 문법들을 익히고, 알고리즘 이론 공부를 시작하기 전에 코드업 Python 기초 100제를 풀어보았다.전반적으로 쉬운 난이도의 문제들로 구성되어 푸는데 큰 어려움은 없었으나, '바둑알 십자 뒤집기', '성실한 개미' 등 까다로운
소개 및 리뷰 책 "이것이 코딩 테스트다 with Python"과 저자의 유튜브 강의 약 40편을 전부 정독하고 필요한 부분을 정리하였다. 유튜브 강의 링크 코딩 테스트를 처음 공부하는 입문자에게 많이 추천되는 책으로, 책과 유튜브 강의를 함께