IT/코딩테스트

코테 문제들

Clair_de_Lune 2024. 12. 11. 16:36
728x90

1. 배열/리스트

배열을 다루는 문제는 매우 자주 출제됩니다. 배열의 순서를 조작하거나 조건에 맞는 값을 찾는 문제가 포함됩니다.

  • 주요 개념:
    • 배열의 인덱스 접근
    • 배열 내 최대값, 최소값, 합 구하기
    • 배열 내 특정 조건을 만족하는 원소 찾기
    • 배열을 정렬하는 방법
    • 투 포인터 (Two-pointer) 기법
  • 예시 문제:
    • 배열의 합 구하기
    • 두 수의 합이 특정 값이 되도록 하는 두 원소 찾기
    • 배열에서 중복된 원소 제거하기
    • 배열을 오름차순으로 정렬하기

2. 문자열

문자열 관련 문제도 자주 출제되며, 주로 문자열 탐색과 조작을 요구합니다.

  • 주요 개념:
    • 문자열 길이 구하기
    • 특정 문자 찾기
    • 문자열 뒤집기
    • 문자열 비교
    • 슬라이싱, 정규 표현식
  • 예시 문제:
    • 주어진 문자열의 문자 개수 세기
    • 문자열이 회문인지 확인하기
    • 문자열에서 중복 문자 제거하기
    • 두 문자열이 아나그램인지 확인하기

3. 조건문과 반복문

조건문과 반복문을 잘 사용하는 문제는 매우 중요합니다. 주어진 조건에 맞는 로직을 구현하는 것이 핵심입니다.

  • 주요 개념:
    • if, else, elif 조건문
    • for, while 반복문
    • 중첩된 조건문과 반복문
    • 리스트, 집합, 딕셔너리 사용하기
  • 예시 문제:
    • 1부터 N까지의 합 구하기
    • 주어진 범위 내에서 소수 구하기
    • 1부터 N까지의 숫자 중 홀수만 출력하기

4. 정렬

정렬 문제는 배열 또는 리스트를 효율적으로 정렬하는 방법을 묻는 문제입니다.

  • 주요 개념:
    • 기본 정렬 알고리즘: 버블 정렬, 선택 정렬, 삽입 정렬
    • 고급 정렬 알고리즘: 퀵 정렬, 병합 정렬
    • 파이썬 내장 함수 sorted()와 sort()
  • 예시 문제:
    • 리스트를 오름차순/내림차순으로 정렬하기
    • 특정 조건에 맞게 정렬된 리스트 만들기
    • 두 배열을 병합하여 정렬된 배열 만들기

5. 탐색

탐색 문제는 주어진 조건에 맞는 원소를 찾는 문제입니다. 이 문제들은 보통 이진 탐색, 선형 탐색 등을 포함합니다.

  • 주요 개념:
    • 선형 탐색 (Linear Search)
    • 이진 탐색 (Binary Search)
    • 이진 탐색 트리 (Binary Search Tree)
    • 깊이 우선 탐색(DFS), 너비 우선 탐색(BFS)
  • 예시 문제:
    • 리스트에서 특정 값 찾기
    • 이진 탐색을 활용한 값 찾기
    • 이진 탐색 트리에서 값 찾기

6. 재귀

재귀는 함수가 자기 자신을 호출하는 방식으로 문제를 해결하는 방법입니다. 재귀를 사용하면 코드가 간결하고 직관적일 수 있습니다.

  • 주요 개념:
    • 재귀 함수 작성
    • 기저 조건 설정
    • 재귀를 이용한 문제 풀이
  • 예시 문제:
    • 팩토리얼 계산하기
    • 피보나치 수열 구하기
    • 재귀를 이용한 이진 트리 탐색

7. 그리디 알고리즘

그리디 알고리즘은 최적의 해를 찾는 문제로, 선택 시마다 최선의 선택을 하는 방식입니다.

  • 주요 개념:
    • 그리디 알고리즘의 특징
    • 최적화 문제를 풀기 위한 전략
    • 부분적인 해결을 통해 전체 문제를 해결
  • 예시 문제:
    • 동전 교환 문제
    • 회의실 배정 문제
    • 가장 큰 수 만들기

8. 동적 계획법 (DP)

동적 계획법은 문제를 작은 문제로 나누어 풀고 그 결과를 저장하여 반복 계산을 줄이는 방법입니다.

  • 주요 개념:
    • 메모이제이션 (Memoization)
    • 점화식 (Recurrence Relation)
    • DP 테이블 채우기
  • 예시 문제:
    • 피보나치 수열 구하기
    • 최소 동전 개수 구하기
    • 0/1 배낭 문제

9. 스택과 큐

스택과 큐는 기본적인 자료구조로, 주로 순서를 관리하거나 특정 조건을 만족하는 문제에서 사용됩니다.

  • 주요 개념:
    • 스택 (LIFO)
    • 큐 (FIFO)
    • 스택과 큐의 구현
    • 괄호 짝 맞추기
  • 예시 문제:
    • 괄호 짝 맞추기
    • 큐를 이용한 시뮬레이션 문제
    • 스택을 이용한 후위 표기식 계산

10. 그래프

그래프 문제는 연결된 점들 간의 관계를 나타내고, 탐색이나 최단 경로 등을 구하는 문제입니다.

  • 주요 개념:
    • 그래프의 표현: 인접 행렬, 인접 리스트
    • DFS (깊이 우선 탐색)
    • BFS (너비 우선 탐색)
    • 최단 경로 알고리즘: 다익스트라, 플로이드 워셜
  • 예시 문제:
    • 그래프의 연결 요소 구하기
    • BFS/DFS로 그래프 탐색하기
    • 최단 경로 구하기 (다익스트라 알고리즘)
728x90

'IT > 코딩테스트' 카테고리의 다른 글

20241212 문자열과 조건문 반복문  (3) 2024.12.11
배열 문제 20241211  (1) 2024.12.11
코딩테스트 난이도별  (0) 2024.12.11