안녕하세요~👋
오늘도 공부하는 무럭무럭 ✨성장몬
✨ 입니다.
unshift()
메서드도 push()
메서드처럼 호출한 배열의 length
값을 반환해요!
※ 주의 ※ 메서드마다 반환하는 결과가 다르다는 것!
1
2
3
4
5
6
7
8
9
10
11
12
/* 오답노트 */
function solution(prev, join) {
let 지난번에_처음발표자 = prev.shift();
console.log(지난번에_처음발표자);
console.log(prev);
prev.unshift(join);
console.log(prev);
prev.push(지난번에_처음발표자);
console.log(prev);
return prev;
}
1
2
3
4
5
6
7
8
9
sudo
[ '임금' ]
[ '라떼', '임금' ]
[ '라떼', '임금', 'sudo' ]
아버
[ '광어', '안드로이드', 'siri' ]
[ '피카츄', '광어', '안드로이드', 'siri' ]
[ '피카츄', '광어', '안드로이드', 'siri', '아버' ]
저는 spread 구문을 몰라서 이렇게 수고롭게 코딩했는데…ㅎㅎ
프로젝트할 때 … 쓰긴 했는데 이걸 spread 구문이라고 하는지 몰랐어요!
😆 바보다!
이제라도 알면 됐죠!? 🤭
같이 성장하고 싶다면~?
📝 문제
개발자 원두가 속한 개발팀에서는 매주 돌아가면서 공부한 것을 발표하는 스터디가 있습니다.
발표 순서를 정하는 규칙은 아래와 같습니다.
- 지난 발표에서 첫 번째로 발표한 사람은 마지막 순서로 발표하게 됩니다.
- 새로 참여하는 사람은 첫 번째로 발표합니다.
- 나머지 사람들의 발표 순서는 동일합니다.
지난번 발표한 사람들의 닉네임이 순서대로 담긴 배열 prev와
새로 참여한 사람의 닉네임이 문자열 join으로 주어질 때
이번 스터디의 발표 순서가 담긴 배열을 return하는 함수 solution을 완성해주세요.
✔ 제한 사항
- join은 길이 1 이상 10 이하인 문자열입니다.
- 배열 prev의 길이는 2 이상 10 이하입니다.
🙄 입출력 예
prev | join | return |
---|---|---|
[“sudo”, “임금”] | “라떼” | [“라떼”, “임금”, “sudo”] |
[“아버”, “광어”, “안드로이드”, “siri”] | “피카츄” | [“피카츄”, “광어”, “안드로이드”, “siri”, “아버”] |
초기화
1
2
3
4
5
6
7
8
9
10
function solution(prev, join) {
// 여기에 코드를 작성하세요.
}
solution(["sudo", "임금"], "라떼");
// ["라떼", "임금", "sudo"];
solution(["아버", "광어", "안드로이드", "siri"], "피카츄");
// ["피카츄", "광어", "안드로이드", "siri", "아버"];
💖 정답
1
2
3
4
5
6
7
8
9
function solution(prev, join) {
const 지난번에_처음발표자 = prev.shift();
return [join, ...prev, 지난번에_처음발표자];
}
solution(["sudo", "임금"], "라떼");
// ["라떼", "임금", "sudo"];
solution(["아버", "광어", "안드로이드", "siri"], "피카츄");
// ["피카츄", "광어", "안드로이드", "siri", "아버"];
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
/* 풀이 과정 (1/2) */
function solution(prev, join) {
// [join, 나머지, 지난번에_처음발표자]
// 나머지
// 지난번에_처음발표자
const 지난번에_처음발표자 = prev.shift();
return [join, prev, 지난번에_처음발표자];
}
// [ '라떼', [ '임금' ], 'sudo' ]
// [ '피카츄', [ '광어', '안드로이드', 'siri' ], '아버' ]
/* 풀이 과정 (2/2) */
function solution(prev, join) {
// [join, 나머지, 지난번에_처음발표자]
// 나머지
// 지난번에_처음발표자
const 지난번에_처음발표자 = prev.shift();
console.log([join, prev, 지난번에_처음발표자]);
return [join, ...prev, 지난번에_처음발표자];
}
// [ '라떼', '임금', 'sudo' ]
// [ '피카츄', '광어', '안드로이드', 'siri', '아버' ]