Skip to content
Merged
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
# [level 1] 두 개 뽑아서 더하기 - 68644

[문제 링크](https://school.programmers.co.kr/learn/courses/30/lessons/68644)

### 성능 요약

메모리: 75.6 MB, 시간: 2.60 ms

### 구분

코딩테스트 연습 > 월간 코드 챌린지 시즌1

### 채점결과

정확성: 100.0<br/>합계: 100.0 / 100.0

### 제출 일자

2026년 03월 01일 17:32:32

### 문제 설명

<p>정수 배열 numbers가 주어집니다. numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return 하도록 solution 함수를 완성해주세요.</p>

<hr>

<h5>제한사항</h5>

<ul>
<li>numbers의 길이는 2 이상 100 이하입니다.

<ul>
<li>numbers의 모든 수는 0 이상 100 이하입니다.</li>
</ul></li>
</ul>

<hr>

<h5>입출력 예</h5>
<table class="table">
<thead><tr>
<th>numbers</th>
<th>result</th>
</tr>
</thead>
<tbody><tr>
<td><code>[2,1,3,4,1]</code></td>
<td><code>[2,3,4,5,6,7]</code></td>
</tr>
<tr>
<td><code>[5,0,2,7]</code></td>
<td><code>[2,5,7,9,12]</code></td>
</tr>
</tbody>
</table>
<hr>

<h5>입출력 예 설명</h5>

<p>입출력 예 #1</p>

<ul>
<li>2 = 1 + 1 입니다. (1이 numbers에 두 개 있습니다.)</li>
<li>3 = 2 + 1 입니다.</li>
<li>4 = 1 + 3 입니다.</li>
<li>5 = 1 + 4 = 2 + 3 입니다.</li>
<li>6 = 2 + 4 입니다.</li>
<li>7 = 3 + 4 입니다.</li>
<li>따라서 <code>[2,3,4,5,6,7]</code> 을 return 해야 합니다.</li>
</ul>

<p>입출력 예 #2</p>

<ul>
<li>2 = 0 + 2 입니다.</li>
<li>5 = 5 + 0 입니다.</li>
<li>7 = 0 + 7 = 5 + 2 입니다.</li>
<li>9 = 2 + 7 입니다.</li>
<li>12 = 5 + 7 입니다.</li>
<li>따라서 <code>[2,5,7,9,12]</code> 를 return 해야 합니다.</li>
</ul>


> 출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/challenges
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
import java.util.*;

class Solution {
public int[] solution(int[] numbers) {
Set<Integer> set = new TreeSet<>();

for (int i = 0; i < numbers.length; i++) {
for (int j = i + 1; j < numbers.length; j++) {
set.add(numbers[i] + numbers[j]);
}
}

int[] answer = new int[set.size()];
int idx = 0;
for (int k : set) {
answer[idx++] = k;
}

return answer;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@

class Solution {
public int solution(int n) {
//3진법에 대해서 ....
// 3^0, 3^1 .. 이런식으로 (0,1,2)가 올 수 있음
//규칙으로 어떻게 뽑아내냐
// 0 , 3, 9, 27, 81, 243, ~ 이런식으로 늘어나는데 ..
// 나누면서 나머지를 담는다.
StringBuilder sb = new StringBuilder();

while (n > 0) {
sb.append(n % 3);
n /= 3;
}

String revThree = sb.toString(); // "0021" 같은 상태
int answer = 0;
int power = 1; // 3^0, 3^1... 가중치


for (int i = revThree.length() - 1; i >= 0; i--) {
int digit = revThree.charAt(i) - '0';
answer += digit * power;
power *= 3; // 다음 자릿수를 위해 3을 곱함
}

return answer;

}
}
107 changes: 107 additions & 0 deletions 프로그래머스/1/68935. 3진법 뒤집기/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,107 @@
# [level 1] 3진법 뒤집기 - 68935

[문제 링크](https://school.programmers.co.kr/learn/courses/30/lessons/68935)

### 성능 요약

메모리: 72.1 MB, 시간: 0.07 ms

### 구분

코딩테스트 연습 > 월간 코드 챌린지 시즌1

### 채점결과

정확성: 100.0<br/>합계: 100.0 / 100.0

### 제출 일자

2026년 02월 27일 17:02:04

### 문제 설명

<p>자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해주세요.</p>

<hr>

<h5>제한사항</h5>

<ul>
<li>n은 1 이상 100,000,000 이하인 자연수입니다.</li>
</ul>

<hr>

<h5>입출력 예</h5>
<table class="table">
<thead><tr>
<th>n</th>
<th>result</th>
</tr>
</thead>
<tbody><tr>
<td>45</td>
<td>7</td>
</tr>
<tr>
<td>125</td>
<td>229</td>
</tr>
</tbody>
</table>
<hr>

<h5>입출력 예 설명</h5>

<p>입출력 예 #1</p>

<ul>
<li>답을 도출하는 과정은 다음과 같습니다.</li>
</ul>
<table class="table">
<thead><tr>
<th>n (10진법)</th>
<th>n (3진법)</th>
<th>앞뒤 반전(3진법)</th>
<th>10진법으로 표현</th>
</tr>
</thead>
<tbody><tr>
<td>45</td>
<td>1200</td>
<td>0021</td>
<td>7</td>
</tr>
</tbody>
</table>
<ul>
<li>따라서 7을 return 해야 합니다.</li>
</ul>

<p>입출력 예 #2</p>

<ul>
<li>답을 도출하는 과정은 다음과 같습니다.</li>
</ul>
<table class="table">
<thead><tr>
<th>n (10진법)</th>
<th>n (3진법)</th>
<th>앞뒤 반전(3진법)</th>
<th>10진법으로 표현</th>
</tr>
</thead>
<tbody><tr>
<td>125</td>
<td>11122</td>
<td>22111</td>
<td>229</td>
</tr>
</tbody>
</table>
<ul>
<li>따라서 229를 return 해야 합니다.</li>
</ul>


> 출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/challenges
75 changes: 75 additions & 0 deletions 프로그래머스/1/70128. 내적/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
# [level 1] 내적 - 70128

[문제 링크](https://school.programmers.co.kr/learn/courses/30/lessons/70128)

### 성능 요약

메모리: 81.6 MB, 시간: 0.05 ms

### 구분

코딩테스트 연습 > 월간 코드 챌린지 시즌1

### 채점결과

정확성: 100.0<br/>합계: 100.0 / 100.0

### 제출 일자

2026년 02월 27일 16:40:23

### 문제 설명

<p>길이가 같은 두 1차원 정수 배열 a, b가 매개변수로 주어집니다. a와 b의 <a href="https://en.wikipedia.org/wiki/Dot_product" target="_blank" rel="noopener">내적</a>을 return 하도록 solution 함수를 완성해주세요.</p>

<p>이때, a와 b의 내적은 <code>a[0]*b[0] + a[1]*b[1] + ... + a[n-1]*b[n-1]</code> 입니다. (n은 a, b의 길이)</p>

<hr>

<h5>제한사항</h5>

<ul>
<li>a, b의 길이는 1 이상 1,000 이하입니다.</li>
<li>a, b의 모든 수는 -1,000 이상 1,000 이하입니다.</li>
</ul>

<hr>

<h5>입출력 예</h5>
<table class="table">
<thead><tr>
<th>a</th>
<th>b</th>
<th>result</th>
</tr>
</thead>
<tbody><tr>
<td><code>[1,2,3,4]</code></td>
<td><code>[-3,-1,0,2]</code></td>
<td>3</td>
</tr>
<tr>
<td><code>[-1,0,1]</code></td>
<td><code>[1,0,-1]</code></td>
<td>-2</td>
</tr>
</tbody>
</table>
<hr>

<h5>입출력 예 설명</h5>

<p>입출력 예 #1</p>

<ul>
<li>a와 b의 내적은 <code>1*(-3) + 2*(-1) + 3*0 + 4*2 = 3</code> 입니다.</li>
</ul>

<p>입출력 예 #2</p>

<ul>
<li>a와 b의 내적은 <code>(-1)*1 + 0*0 + 1*(-1) = -2</code> 입니다.</li>
</ul>


> 출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/challenges
10 changes: 10 additions & 0 deletions 프로그래머스/1/70128. 내적/내적.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
class Solution {
public int solution(int[] a, int[] b) {
int answer = 0;

for(int i=0; i<a.length; i++) {
answer += a[i] * b[i];
}
return answer;
}
}
Loading