카테고리에 속하지 않은 다양한 알고리즘 문제
지금까지 우리는 여러 섹션에서 분류된 다양한 문제들을 살펴보았습니다. 하지만 특정 주제나 카테고리에 깔끔하게 속하지 않는 문제들도 존재합니다. 이번 섹션에서는 이렇게 분류되지 않은 문제들을 하나씩 짚어보겠습니다.
이 문제들은 겉보기에는 산발적으로 보일 수 있지만, 코딩 테스트와 기술 면접에서 실제로 자주 등장하는 핵심 주제들입니다. 이해하기 쉽도록 아래에서 주제별로 묶어 정리했습니다.
이 섹션에서 다룰 내용
수학 및 숫자 관련 문제
- n진수(base-n) 숫자 덧셈
- 바빌로니아 방법(Babylonian Method)으로 제곱근 구하기
- 매우 큰 수의 팩토리얼 계산
- 완전 제곱수(Perfect Square) 여부 확인
- 두 수를 곱하는 가장 빠른 방법
- 숫자를 영단어로 변환하기
- 숫자를 로마 숫자(Roman Numerals)로 변환하기
- 젤러의 공식(Zeller's Algorithm)으로 요일 구하기
- 숫자의 패리티(Parity) 검사
- 마방진(Magic Square)
기하학 관련 문제
- 주어진 점이 다각형(Polygon) 내부에 있는지 확인
- 주어진 점이 삼각형 내부에 있는지 확인
- 주어진 네 점이 정사각형을 이루는지 확인
- 두 선분이 교차하는지 확인
- 그레이엄 스캔(Graham Scan) 알고리즘
- 자비스 행진(Jarvis March) 알고리즘
문자열 관련 문제
- 주어진 문자열의 모든 순열(Permutation) 출력
- 사전순으로 가장 작은 문자열 회전 찾기
- 문자열을 영숫자(Alphanumeric) 순서로 정렬
배열 및 데이터 구조 활용 문제
- 배열에서 k번째로 큰 원소 찾기
- 배열 내용 무작위로 섞기(Shuffle)
- 행렬(Matrix)을 나선형으로 출력
- 해시맵(Hash-map)을 이용한 자물쇠와 열쇠 문제
- 너트와 볼트(Nuts and Bolts) 문제
- 두 집합이 서로소(Disjoint)인지 확인
클래식 알고리즘 문제
- 플러드 필(Flood Fill) 알고리즘
- 저수지 샘플링(Reservoir Sampling)
- 외판원 순회 문제(Travelling Salesman Problem)
- 하노이 탑(Tower of Hanoi) 문제
- 최소 비용으로 n개의 밧줄 연결하기
- 정확히 k개의 간선으로 출발점에서 도착점까지 가는 경로 찾기
- 소수의 합으로 표현되는 짝수 찾기
마무리
위에서 소개한 문제들은 어느 한 분야에 국한되지 않으면서도, 알고리즘적 사고력과 문제 해결 능력을 동시에 단련할 수 있는 좋은 소재입니다. 각 문제를 직접 구현해 보면서 개념을 확실히 익혀 보시기 바랍니다.