Skip to content

Commit 30bb462

Browse files
committed
Feat: Done Programmers Coding Test(day7)
1 parent 06f6211 commit 30bb462

File tree

4 files changed

+188
-0
lines changed

4 files changed

+188
-0
lines changed
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
## 문제 설명
2+
3+
정수 배열 num_list와 정수 n이 매개변수로 주어집니다. num_list를 다음 설명과 같이 2차원 배열로 바꿔 return하도록 solution 함수를 완성해주세요.
4+
5+
num_list가 [1, 2, 3, 4, 5, 6, 7, 8] 로 길이가 8이고 n이 2이므로 num_list를 2 * 4 배열로 다음과 같이 변경합니다. 2차원으로 바꿀 때에는 num_list의 원소들을 앞에서부터 n개씩 나눠 2차원 배열로 변경합니다.
6+
7+
num_list |n| result
8+
:--:|:--:|:--:
9+
[1, 2, 3, 4, 5, 6, 7, 8] |2| [[1, 2], [3, 4], [5, 6], [7, 8]]
10+
11+
12+
## 제한사항
13+
- num_list의 길이는 n의 배 수개입니다.
14+
- 0 ≤ num_list의 길이 ≤ 150
15+
- 2 ≤ n < num_list의 길이
16+
## 입출력 예
17+
18+
num_list| n| result
19+
:--:|:--:|:--:
20+
[1, 2, 3, 4, 5, 6, 7, 8]| 2 |[[1, 2], [3, 4], [5, 6], [7, 8]]
21+
[100, 95, 2, 4, 5, 6, 18, 33, 948] 3 [[100, 95, 2], [4, 5, 6], [18, 33, 948]]
22+
23+
## 입출력 예 설명
24+
입출력 예 #1
25+
26+
- num_list가 [1, 2, 3, 4, 5, 6, 7, 8] 로 길이가 8이고 n이 2이므로 2 * 4 배열로 변경한 [[1, 2], [3, 4], [5, 6], [7, 8]] 을 return합니다.
27+
28+
입출력 예 #2
29+
30+
- num_list가 [100, 95, 2, 4, 5, 6, 18, 33, 948] 로 길이가 9이고 n이 3이므로 3 * 3 배열로 변경한 [[100, 95, 2], [4, 5, 6], [18, 33, 948]] 을 return합니다.
31+
32+
## 문제 풀이
33+
```js
34+
function solution(num_list, n) {
35+
var answer = [];
36+
for (var i = 0; i < Math.floor(num_list.length/n); i++ ) {
37+
answer.push(num_list.slice(n*(i), n*(i+1)))
38+
}
39+
return answer;
40+
}
41+
```
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
## 문제 설명
2+
머쓱이는 친구들과 동그랗게 서서 공 던지기 게임을 하고 있습니다. 공은 1번부터 던지며 오른쪽으로 한 명을 건너뛰고 그다음 사람에게만 던질 수 있습니다. 친구들의 번호가 들어있는 정수 배열 numbers와 정수 K가 주어질 때, k번째로 공을 던지는 사람의 번호는 무엇인지 return 하도록 solution 함수를 완성해보세요.
3+
4+
## 제한사항
5+
- 2 < numbers의 길이 < 100
6+
- 0 < k < 1,000
7+
- numbers의 첫 번째와 마지막 번호는 실제로 바로 옆에 있습니다.
8+
- numbers는 1부터 시작하며 번호는 순서대로 올라갑니다.
9+
10+
## 입출력 예
11+
numbers| k| result
12+
:--:|:--:|:--:
13+
[1, 2, 3, 4]| 2| 3
14+
[1, 2, 3, 4, 5, 6]| 5| 3
15+
[1, 2, 3] |3 |2
16+
17+
## 입출력 예 설명
18+
19+
입출력 예 #1
20+
21+
- 1번은 첫 번째로 3번에게 공을 던집니다.
22+
- 3번은 두 번째로 1번에게 공을 던집니다.
23+
24+
입출력 예 #2
25+
26+
- 1번은 첫 번째로 3번에게 공을 던집니다.
27+
- 3번은 두 번째로 5번에게 공을 던집니다.
28+
- 5번은 세 번째로 1번에게 공을 던집니다.
29+
- 1번은 네 번째로 3번에게 공을 던집니다.
30+
- 3번은 다섯 번째로 5번에게 공을 던집니다.
31+
32+
입출력 예 #3
33+
34+
- 1번은 첫 번째로 3번에게 공을 던집니다.
35+
- 3번은 두 번째로 2번에게 공을 던집니다.
36+
- 2번은 세 번째로 1번에게 공을 던집니다.
37+
38+
## 문제 풀이
39+
40+
```js
41+
function solution(numbers, k) {
42+
var answer = Math.floor((2*(k-1) + 1 )% numbers.length);
43+
return answer;
44+
}
45+
```
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
## 문제 설명
2+
정수가 담긴 배열 numbers와 문자열 direction가 매개변수로 주어집니다. 배열 numbers의 원소를 direction방향으로 한 칸씩 회전시킨 배열을 return하도록 solution 함수를 완성해주세요.
3+
4+
## 제한사항
5+
- 3 ≤ numbers의 길이 ≤ 20
6+
- direction은 "left" 와 "right" 둘 중 하나입니다.
7+
8+
## 입출력 예
9+
numbers |direction |result
10+
:--:|:--:|:--:
11+
[1, 2, 3] |"right"| [3, 1, 2]
12+
[4, 455, 6, 4, -1, 45, 6] |"left"| [455, 6, 4, -1, 45, 6, 4]
13+
14+
## 입출력 예 설명
15+
입출력 예 #1
16+
17+
- numbers 가 [1, 2, 3]이고 direction이 "right" 이므로 오른쪽으로 한 칸씩 회전시킨 [3, 1, 2]를 return합니다.
18+
19+
입출력 예 #2
20+
21+
- numbers 가 [4, 455, 6, 4, -1, 45, 6]이고 direction이 "left" 이므로 왼쪽으로 한 칸씩 회전시킨 [455, 6, 4, -1, 45, 6, 4]를 return합니다.
22+
23+
## 문제 풀이
24+
```js
25+
function solution(numbers, direction) {
26+
var answer = [];
27+
switch(direction){
28+
case 'right':
29+
for (i = 0; i < numbers.length; i++){
30+
if(i ===0){
31+
answer.push(numbers[numbers.length-1])
32+
} else{
33+
answer.push(numbers[i-1])
34+
}
35+
};
36+
break;
37+
case 'left':
38+
for(i=0; i<numbers.length; i++){
39+
if (i === numbers.length -1){
40+
answer.push(numbers[0])
41+
} else{
42+
answer.push(numbers[i+1])
43+
}
44+
}
45+
break;
46+
default:
47+
break;
48+
}
49+
return answer;
50+
}
51+
```
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
## 문제 설명
2+
사분면은 한 평면을 x축과 y축을 기준으로 나눈 네 부분입니다. 사분면은 아래와 같이 1부터 4까지 번호를매깁니다.
3+
4+
5+
- x 좌표와 y 좌표가 모두 양수이면 제1사분면에 속합니다.
6+
- x 좌표가 음수, y 좌표가 양수이면 제2사분면에 속합니다.
7+
- x 좌표와 y 좌표가 모두 음수이면 제3사분면에 속합니다.
8+
- x 좌표가 양수, y 좌표가 음수이면 제4사분면에 속합니다.
9+
- x 좌표 (x, y)를 차례대로 담은 정수 배열 dot이 매개변수로 주어집니다. 좌표 dot이 사분면 중 어디에 속하는지 1, 2, 3, 4 중 하나를 return 하도록 solution 함수를 완성해주세요.
10+
11+
## 제한사항
12+
- dot의 길이 = 2
13+
- dot[0]은 x좌표를, dot[1]은 y좌표를 나타냅니다
14+
- -500 ≤ dot의 원소 ≤ 500
15+
- dot의 원소는 0이 아닙니다.
16+
## 입출력 예
17+
dot |result
18+
:--:|:--:
19+
[2, 4]| 1
20+
[-7, 9]| 2
21+
22+
## 입출력 예 설명
23+
입출력 예 #1
24+
25+
- dot이 [2, 4]로 x 좌표와 y 좌표 모두 양수이므로 제 1 사분면에 속합니다. 따라서 1을 return 합니다.
26+
27+
입출력 예 #2
28+
29+
- dot이 [-7, 9]로 x 좌표가 음수, y 좌표가 양수이므로 제 2 사분면에 속합니다. 따라서 2를 return 합니다.
30+
31+
## 문제 풀이
32+
```java
33+
function solution(dot) {
34+
35+
var x = dot[0]
36+
var y = dot[1]
37+
38+
if (x > 0 && y > 0) {
39+
return 1
40+
}
41+
else if (x < 0 && y > 0) {
42+
return 2
43+
}
44+
else if (x < 0 && y < 0){
45+
return 3
46+
}
47+
else if ( x > 0 && y < 0){
48+
return 4
49+
}
50+
}
51+
```

0 commit comments

Comments
 (0)