Skip to content

Commit dea2a1d

Browse files
chore: sync baekjoon archives
1 parent 20c9b9f commit dea2a1d

File tree

8 files changed

+346
-0
lines changed

8 files changed

+346
-0
lines changed
Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
# [level 0] 글자 이어 붙여 문자열 만들기 - 181915
2+
3+
[문제 링크](https://school.programmers.co.kr/learn/courses/30/lessons/181915)
4+
5+
### 성능 요약
6+
7+
메모리: 9.11 MB, 시간: 0.07 ms
8+
9+
### 구분
10+
11+
코딩테스트 연습 > 코딩 기초 트레이닝
12+
13+
### 채점결과
14+
15+
정확성: 100.0<br/>합계: 100.0 / 100.0
16+
17+
### 제출 일자
18+
19+
2026년 02월 21일 01:43:21
20+
21+
### 문제 설명
22+
23+
<p>문자열 <code>my_string</code>과 정수 배열 <code>index_list</code>가 매개변수로 주어집니다. <code>my_string</code>의 <code>index_list</code>의 원소들에 해당하는 인덱스의 글자들을 순서대로 이어 붙인 문자열을 return 하는 solution 함수를 작성해 주세요.</p>
24+
25+
<hr>
26+
27+
<h5>제한사항</h5>
28+
29+
<ul>
30+
<li>1 ≤ <code>my_string</code>의 길이 ≤ 1,000</li>
31+
<li><code>my_string</code>의 원소는 영소문자로 이루어져 있습니다.</li>
32+
<li>1 ≤ <code>index_list</code>의 길이 ≤ 1,000</li>
33+
<li>0 ≤ <code>index_list</code>의 원소 &lt; <code>my_string</code>의 길이</li>
34+
</ul>
35+
36+
<hr>
37+
38+
<h5>입출력 예</h5>
39+
<table class="table">
40+
<thead><tr>
41+
<th>my_string</th>
42+
<th>index_list</th>
43+
<th>result</th>
44+
</tr>
45+
</thead>
46+
<tbody><tr>
47+
<td>"cvsgiorszzzmrpaqpe"</td>
48+
<td>[16, 6, 5, 3, 12, 14, 11, 11, 17, 12, 7]</td>
49+
<td>"programmers"</td>
50+
</tr>
51+
<tr>
52+
<td>"zpiaz"</td>
53+
<td>[1, 2, 0, 0, 3]</td>
54+
<td>"pizza"</td>
55+
</tr>
56+
</tbody>
57+
</table>
58+
<hr>
59+
60+
<h5>입출력 예 설명</h5>
61+
62+
<p>입출력 예 #1</p>
63+
64+
<ul>
65+
<li>예제 1번의 <code>my_string</code>에서 인덱스 3, 5, 6, 11, 12, 14, 16, 17에 해당하는 글자는 각각 g, o, r, m, r, a, p, e이므로 <code>my_string</code>에서 <code>index_list</code>에 들어있는 원소에 해당하는 인덱스의 글자들은 각각 순서대로 p, r, o, g, r, a, m, m, e, r, s입니다. 따라서 "programmers"를 return 합니다.</li>
66+
</ul>
67+
68+
<p>입출력 예 #2</p>
69+
70+
<ul>
71+
<li>예제 2번의 <code>my_string</code>에서 인덱스 0, 1, 2, 3에 해당하는 글자는 각각 z, p, i, a이므로 <code>my_string</code>에서 <code>index_list</code>에 들어있는 원소에 해당하는 인덱스의 글자들은 각각 순서대로 p, i, z, z, a입니다. 따라서 "pizza"를 return 합니다.</li>
72+
</ul>
73+
74+
75+
> 출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/challenges
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
def solution(my_string, index_list):
2+
answer = ''
3+
for i in index_list:
4+
answer+=my_string[i]
5+
return answer
Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
# [level 2] 무인도 여행 - 154540
2+
3+
[문제 링크](https://school.programmers.co.kr/learn/courses/30/lessons/154540)
4+
5+
### 성능 요약
6+
7+
메모리: 9.42 MB, 시간: 12.52 ms
8+
9+
### 구분
10+
11+
코딩테스트 연습 > 연습문제
12+
13+
### 채점결과
14+
15+
정확성: 100.0<br/>합계: 100.0 / 100.0
16+
17+
### 제출 일자
18+
19+
2026년 02월 21일 01:41:14
20+
21+
### 문제 설명
22+
23+
<p>메리는 여름을 맞아 무인도로 여행을 가기 위해 지도를 보고 있습니다. 지도에는 바다와 무인도들에 대한 정보가 표시돼 있습니다. 지도는 1 x 1크기의 사각형들로 이루어진 직사각형 격자 형태이며, 격자의 각 칸에는 'X' 또는 1에서 9 사이의 자연수가 적혀있습니다. 지도의 'X'는 바다를 나타내며, 숫자는 무인도를 나타냅니다. 이때, 상, 하, 좌, 우로 연결되는 땅들은 하나의 무인도를 이룹니다. 지도의 각 칸에 적힌 숫자는 식량을 나타내는데, 상, 하, 좌, 우로 연결되는 칸에 적힌 숫자를 모두 합한 값은 해당 무인도에서 최대 며칠동안 머물 수 있는지를 나타냅니다. 어떤 섬으로 놀러 갈지 못 정한 메리는 우선 각 섬에서 최대 며칠씩 머물 수 있는지 알아본 후 놀러갈 섬을 결정하려 합니다.</p>
24+
25+
<p>지도를 나타내는 문자열 배열 <code>maps</code>가 매개변수로 주어질 때, 각 섬에서 최대 며칠씩 머무를 수 있는지 배열에 오름차순으로 담아 return 하는 solution 함수를 완성해주세요. 만약 지낼 수 있는 무인도가 없다면 -1을 배열에 담아 return 해주세요.</p>
26+
27+
<hr>
28+
29+
<h5>제한사항</h5>
30+
31+
<ul>
32+
<li>3 ≤ <code>maps</code>의 길이 ≤ 100
33+
34+
<ul>
35+
<li>3 ≤ <code>maps[i]</code>의 길이 ≤ 100</li>
36+
<li><code>maps[i]</code>는 'X' 또는 1 과 9 사이의 자연수로 이루어진 문자열입니다.</li>
37+
<li>지도는 직사각형 형태입니다.</li>
38+
</ul></li>
39+
</ul>
40+
41+
<hr>
42+
43+
<h5>입출력 예</h5>
44+
<table class="table">
45+
<thead><tr>
46+
<th>maps</th>
47+
<th>result</th>
48+
</tr>
49+
</thead>
50+
<tbody><tr>
51+
<td>["X591X","X1X5X","X231X", "1XXX1"]</td>
52+
<td>[1, 1, 27]</td>
53+
</tr>
54+
<tr>
55+
<td>["XXX","XXX","XXX"]</td>
56+
<td>[-1]</td>
57+
</tr>
58+
</tbody>
59+
</table>
60+
<hr>
61+
62+
<h5>입출력 예 설명</h5>
63+
64+
<p>입출력 예 #1</p>
65+
66+
<p>위 문자열은 다음과 같은 지도를 나타냅니다.</p>
67+
68+
<p><img src="https://user-images.githubusercontent.com/62426665/206862823-4633fbf1-c075-4d35-b577-26f504dcd332.png" title="" alt="image1"></p>
69+
70+
<p>연결된 땅들의 값을 합치면 다음과 같으며</p>
71+
72+
<p><img src="https://user-images.githubusercontent.com/62426665/209070615-ae568f20-cf06-4f88-8d4f-8e9861af2d36.png" title="" alt="image2"></p>
73+
74+
<p>이를 오름차순으로 정렬하면 [1, 1, 27]이 됩니다.</p>
75+
76+
<p>입출력 예 #2</p>
77+
78+
<p>위 문자열은 다음과 같은 지도를 나타냅니다.</p>
79+
80+
<p><img src="https://user-images.githubusercontent.com/62426665/206863265-0a371c69-d4b5-411a-972f-bdc36b90c917.png" title="" alt="image3"></p>
81+
82+
<p>섬이 존재하지 않기 때문에 -1을 배열에 담아 반환합니다.</p>
83+
84+
85+
> 출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/challenges
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
from collections import deque
2+
3+
def solution(maps):
4+
answer = []
5+
rows = len(maps)
6+
cols = len(maps[0])
7+
visited = [[False] * cols for _ in range(rows)]
8+
9+
dr = [-1, 1, 0, 0]
10+
dc = [0, 0, -1, 1]
11+
12+
for r in range(rows):
13+
for c in range(cols):
14+
if maps[r][c] != 'X' and not visited[r][c]:
15+
total_food = 0
16+
queue = deque([(r, c)])
17+
visited[r][c] = True
18+
19+
while queue:
20+
curr_r, curr_c = queue.popleft()
21+
total_food += int(maps[curr_r][curr_c])
22+
23+
for i in range(4):
24+
nr, nc = curr_r + dr[i], curr_c + dc[i]
25+
26+
if 0 <= nr < rows and 0 <= nc < cols:
27+
if maps[nr][nc] != 'X' and not visited[nr][nc]:
28+
visited[nr][nc] = True
29+
queue.append((nr, nc))
30+
31+
answer.append(total_food)
32+
33+
return sorted(answer) if answer else [-1]
Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
# [level 0] 공배수 - 181936
2+
3+
[문제 링크](https://school.programmers.co.kr/learn/courses/30/lessons/181936)
4+
5+
### 성능 요약
6+
7+
메모리: 72.8 MB, 시간: 0.02 ms
8+
9+
### 구분
10+
11+
코딩테스트 연습 > 코딩 기초 트레이닝
12+
13+
### 채점결과
14+
15+
정확성: 100.0<br/>합계: 100.0 / 100.0
16+
17+
### 제출 일자
18+
19+
2026년 02월 21일 01:37:34
20+
21+
### 문제 설명
22+
23+
<p>정수 <code>number</code>와 <code>n</code>, <code>m</code>이 주어집니다. <code>number</code>가 <code>n</code>의 배수이면서 <code>m</code>의 배수이면 1을 아니라면 0을 return하도록 solution 함수를 완성해주세요.</p>
24+
25+
<hr>
26+
27+
<h5>제한사항</h5>
28+
29+
<ul>
30+
<li>10 ≤ <code>number</code> ≤ 100</li>
31+
<li>2 ≤ <code>n</code>, <code>m</code> &lt; 10</li>
32+
</ul>
33+
34+
<hr>
35+
36+
<h5>입출력 예</h5>
37+
<table class="table">
38+
<thead><tr>
39+
<th>number</th>
40+
<th>n</th>
41+
<th>m</th>
42+
<th>result</th>
43+
</tr>
44+
</thead>
45+
<tbody><tr>
46+
<td>60</td>
47+
<td>2</td>
48+
<td>3</td>
49+
<td>1</td>
50+
</tr>
51+
<tr>
52+
<td>55</td>
53+
<td>10</td>
54+
<td>5</td>
55+
<td>0</td>
56+
</tr>
57+
</tbody>
58+
</table>
59+
<hr>
60+
61+
<h5>입출력 예 설명</h5>
62+
63+
<p>입출력 예 #1</p>
64+
65+
<ul>
66+
<li>60은 2의 배수이면서 3의 배수이기 때문에 1을 return합니다.</li>
67+
</ul>
68+
69+
<p>입출력 예 #2</p>
70+
71+
<ul>
72+
<li>55는 5의 배수이지만 10의 배수가 아니기 때문에 0을 return합니다.</li>
73+
</ul>
74+
75+
76+
> 출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/challenges
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
class Solution {
2+
public int solution(int number, int n, int m) {
3+
return (number % n == 0 && number % m == 0) ? 1 : 0;
4+
}
5+
}
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
# [level 0] 문자열 섞기 - 181942
2+
3+
[문제 링크](https://school.programmers.co.kr/learn/courses/30/lessons/181942)
4+
5+
### 성능 요약
6+
7+
메모리: 90.1 MB, 시간: 13.55 ms
8+
9+
### 구분
10+
11+
코딩테스트 연습 > 코딩 기초 트레이닝
12+
13+
### 채점결과
14+
15+
정확성: 100.0<br/>합계: 100.0 / 100.0
16+
17+
### 제출 일자
18+
19+
2026년 02월 21일 01:36:23
20+
21+
### 문제 설명
22+
23+
<p>길이가 같은 두 문자열 <code>str1</code>과 <code>str2</code>가 주어집니다.</p>
24+
25+
<p>두 문자열의 각 문자가 앞에서부터 서로 번갈아가면서 한 번씩 등장하는 문자열을 만들어 return 하는 solution 함수를 완성해 주세요.</p>
26+
27+
<hr>
28+
29+
<h5>제한사항</h5>
30+
31+
<ul>
32+
<li>1 ≤ <code>str1</code>의 길이 = <code>str2</code>의 길이 ≤ 10
33+
34+
<ul>
35+
<li><code>str1</code>과 <code>str2</code>는 알파벳 소문자로 이루어진 문자열입니다.</li>
36+
</ul></li>
37+
</ul>
38+
39+
<hr>
40+
41+
<h5>입출력 예</h5>
42+
<table class="table">
43+
<thead><tr>
44+
<th>str1</th>
45+
<th>str2</th>
46+
<th>result</th>
47+
</tr>
48+
</thead>
49+
<tbody><tr>
50+
<td>"aaaaa"</td>
51+
<td>"bbbbb"</td>
52+
<td>"ababababab"</td>
53+
</tr>
54+
</tbody>
55+
</table>
56+
57+
> 출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/challenges
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
class Solution {
2+
public String solution(String str1, String str2) {
3+
String answer = "";
4+
for(int i=0; i<str1.length(); i++) {
5+
answer += str1.charAt(i);
6+
answer += str2.charAt(i);
7+
}
8+
return answer;
9+
}
10+
}

0 commit comments

Comments
 (0)