diff --git a/프로그래머스/3/42895. N으로 표현/N으로 표현.py b/프로그래머스/3/42895. N으로 표현/N으로 표현.py
new file mode 100644
index 0000000..d664d1c
--- /dev/null
+++ b/프로그래머스/3/42895. N으로 표현/N으로 표현.py
@@ -0,0 +1,23 @@
+def solution(N, number):
+ # dp[i]는 N을 i번 사용해서 만들 수 있는 숫자들의 집합
+ dp = [set() for _ in range(9)]
+
+ for i in range(1, 9):
+ # N을 i번 이어 붙인 수 (예: N=5, i=3이면 555)
+ dp[i].add(int(str(N) * i))
+
+ # 가능한 경우의 수: j와 i-j로 나누어 연산
+ for j in range(1, i):
+ for a in dp[j]:
+ for b in dp[i - j]:
+ dp[i].add(a + b)
+ dp[i].add(a - b)
+ dp[i].add(a * b)
+ if b != 0:
+ dp[i].add(a // b)
+
+ # 목표 number가 현재 집합에 포함되어 있으면, i 반환
+ if number in dp[i]:
+ return i
+
+ return -1
diff --git a/프로그래머스/3/42895. N으로 표현/README.md b/프로그래머스/3/42895. N으로 표현/README.md
new file mode 100644
index 0000000..3cd4642
--- /dev/null
+++ b/프로그래머스/3/42895. N으로 표현/README.md
@@ -0,0 +1,72 @@
+# [level 3] N으로 표현 - 42895
+
+[문제 링크](https://school.programmers.co.kr/learn/courses/30/lessons/42895)
+
+### 성능 요약
+
+메모리: 11.3 MB, 시간: 18.34 ms
+
+### 구분
+
+코딩테스트 연습 > 동적계획법(Dynamic Programming)
+
+### 채점결과
+
+정확성: 100.0
합계: 100.0 / 100.0
+
+### 제출 일자
+
+2025년 03월 06일 21:59:25
+
+### 문제 설명
+
+
아래와 같이 5와 사칙연산만으로 12를 표현할 수 있습니다.
+ +12 = 5 + 5 + (5 / 5) + (5 / 5)
+12 = 55 / 5 + 5 / 5
+12 = (55 + 5) / 5
5를 사용한 횟수는 각각 6,5,4 입니다. 그리고 이중 가장 작은 경우는 4입니다.
+이처럼 숫자 N과 number가 주어질 때, N과 사칙연산만 사용해서 표현 할 수 있는 방법 중 N 사용횟수의 최솟값을 return 하도록 solution 함수를 작성하세요.
| N | +number | +return | +
|---|---|---|
| 5 | +12 | +4 | +
| 2 | +11 | +3 | +
예제 #1
+문제에 나온 예와 같습니다.
예제 #2
+11 = 22 / 2와 같이 2를 3번만 사용하여 표현할 수 있습니다.
※ 공지 - 2020년 9월 3일 테스트케이스가 추가되었습니다.
+ + +> 출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/challenges \ No newline at end of file