자바스크립트 배열을 활용해서 팀 나누기
(2차원 배열)
2차원 배열이란, 배열의 요소로 1차원 배열을 가지는 배열이다.
🔍 문제
오늘은 풋살 동아리 경기가 있는 날입니다. 총인원 10명이서 5명씩 팀을 나누려고 하는데요.
실력이 비슷한 사람들끼리 가위바위보를 했고, 이긴사람이 0번 index, 진 사람이 1번 index 배열을 만들어 정리했습니다.
다음 groups 배열을 가지고, 이긴 사람끼리 그리고 진 사람끼리 팀을 나눠 teams 배열을 완성해 주세요.
let groups = [
['영준', '캡틴'],
['태순', '우재'],
['재훈', '지웅'],
['윤형', '동욱'],
['규식', '소원'],
];
let teams = [
[],
[],
];
🔍 출력 예시
[ '영준', '태순', '재훈', '윤형', '규식' ]
[ '캡틴', '우재', '지웅', '동욱', '소원' ]
🔍 내가 푼 방법
만들어져 있는 teams 이중배열(2차원 배열)을
groups 이중배열을 담았다.
너무 생각을 안하고 단순하게 푼듯 .. ㅎㅎ ..
teams[0][0] = groups[0][0];
teams[1][0] = groups[0][1];
teams[0][1] = groups[1][0];
teams[1][1] = groups[1][1];
teams[0][2] = groups[2][0];
teams[1][2] = groups[2][1];
teams[0][3] = groups[3][0];
teams[1][3] = groups[3][1];
teams[0][4] = groups[4][0];
teams[1][4] = groups[4][1];
🔍 정답 해설
일단 하나하나 필요한 작업들을 모두 작성해보면,
결국 groups의 각 index를 뒤집어서 teams에 할당해주면 간단하게 배열을 나눠줄 수 있다 !
let groups = [
['영준', '캡틴'],
['태순', '우재'],
['재훈', '지웅'],
['윤형', '동욱'],
['규식', '소원'],
];
let teams = [
[],
[],
];
for(let i = 0; i < groups.length; i++) {
for(let j = 0; j < groups[i].length; j++) {
console.log(groups[i][j]);
}
}
2차원 배열을 다뤄야하니, 이렇게 반복문을 이렇게 겹치면 각 요소별 값들을 가져올 수 있다.
let teams = [
[],
[],
];
for(let i = 0; i < groups.length; i++) {
for(let j = 0; j < groups[i].length; j++) {
teams[j][i] = groups[i][j];
}
}
console.log(teams[0]);
console.log(teams[1]);
최종적으로 groups의 각 index를 뒤집어서 teams에 할당해주면 좀 더 효율적으로 문제를 해결할 수 있다.
위에서 내가 처음에 풀었던 방식보다는 이렇게 활용해서 푸는것이 좀 더 효율적으로 좋은 코드로 만들 수 있다.
문제 출처) 코드잇 Code it - 자바스크립트 기초 강의
'코딩테스트' 카테고리의 다른 글
[프로그래머스] SQL 고득점 Kit - Lv2. 재구매가 일어난 상품과 회원 리스트 구하기 (0) | 2023.11.07 |
---|---|
[프로그래머스] 코딩테스트 LV.0 - 중앙값 구하기 (1) | 2023.04.14 |
[프로그래머스] 코딩테스트 LV.0 - 최댓값 만들기(1) (0) | 2023.03.29 |
[JavaScript] 거스름돈 구하기 (0) | 2021.11.30 |
[JavaScript] 객체의 프로퍼티/Property of Object (0) | 2021.11.23 |