📢 공지사항
home
👀

4주차 해설

태그
배열
문자열
종류
해설

배열 회전시키기

💡
정수가 담긴 배열 numbers와 문자열 direction가 매개변수로 주어집니다. 배열 numbers의 원소를 direction방향으로 한 칸씩 회전시킨 배열을 return하도록 solution 함수를 완성해주세요.

생각하기 쉬운 풀이

function solution(numbers, direction) { if ( direction === "left" ) { var tmp = numbers[0]; for ( var i=0 ; i < numbers.length-1 ; i++ ) { numbers[i] = numbers[i+1] } numbers[numbers.length-1] = tmp; } else { var tmp = numbers[numbers.length-1]; for ( var i=numbers.length-2 ; i >= 0 ; i-- ) { numbers[i+1] = numbers[i] } numbers[0] = tmp; } return numbers; }
JavaScript
복사

빠른 풀이

function solution(numbers, direction) { if(direction == "right") { pop_number = numbers.pop() numbers.unshift(pop_number) return numbers } else { shift_number = numbers.shift() numbers.push(shift_number) return numbers } }
JavaScript
복사

빠른 풀이 : 삼항 연산자 이용

function solution(numbers, direction) { direction === 'right' ? numbers.unshift(numbers.pop()) : numbers.push(numbers.shift()); return numbers; }
JavaScript
복사

외계행성의 나이

💡
우주여행을 하던 머쓱이는 엔진 고장으로 PROGRAMMERS-962 행성에 불시착하게 됐습니다. 입국심사에서 나이를 말해야 하는데, PROGRAMMERS-962 행성에서는 나이를 알파벳으로 말하고 있습니다. a는 0, b는 1, c는 2, ..., j는 9입니다. 예를 들어 23살은 cd, 51살은 fb로 표현합니다. 나이 age가 매개변수로 주어질 때 PROGRAMMER-962식 나이를 return하도록 solution 함수를 완성해주세요.

생각하기 쉬운 풀이

function solution(age) { var alphabet = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j"]; var answer = ""; age = age.toString(); for(let i=0; i<age.length; i++){ answer += alphabet[age[i]]; } return answer; }
JavaScript
복사

이론 활용 풀이

function solution(age) { var answer = "" for ( var i=0 ; i < age.toString().length ; i++ ) { answer += String.fromCharCode( parseInt(age.toString()[i]) + "a".charCodeAt(0) ) } return answer }
JavaScript
복사

빠른 풀이

function solution(age) { return age .toString() .split("") .map((v) => "abcdefghij"[v]) .join(""); }
JavaScript
복사

369 게임

💡
머쓱이는 친구들과 369게임을 하고 있습니다. 369게임은 1부터 숫자를 하나씩 대며 3, 6, 9가 들어가는 숫자는 숫자 대신 3, 6, 9의 개수만큼 박수를 치는 게임입니다. 머쓱이가 말해야하는 숫자 order 가 매개변수로 주어질 때, 머쓱이가 쳐야할 박수 횟수를 return 하도록 solution 함수를 완성해보세요.

생각하기 쉬운 풀이

function solution(order) { var answer = 0; order = order.toString() for ( var i=0 ; i < order.length ; i++ ) { if ( order[i] == 3 || order[i] == 6 || order[i] == 9 ) { answer ++; } } return answer; }
JavaScript
복사

빠른 풀이 : filter 활용

function solution(order) { return order.toString().split('').filter(n => ['3', '6', '9'].includes(n)).length; }
JavaScript
복사

빠른 풀이 : 정규식 + split 활용

function solution(order) { return (''+order).split(/[369]/).length-1; }
JavaScript
복사

중복된 문자 제거

💡
문자열 my_string이 매개변수로 주어집니다. my_string에서 중복된 문자를 제거하고 하나의 문자만 남긴 문자열을 return하도록 solution 함수를 완성해주세요.

생각하기 쉬운 풀이

function solution(my_string) { var answer = ''; var set = []; for ( var i=0 ; i < my_string.length ; i++ ) { if ( ! set.includes(my_string[i]) ) { set.push(my_string[i]); answer += my_string[i]; } } return answer; }
JavaScript
복사

빠른 풀이 : Set 활용

function solution(my_string) { return [...new Set(my_string)].join(''); }
JavaScript
복사

A로 B 만들기

💡
문자열 before와 after가 매개변수로 주어질 때, before의 순서를 바꾸어 after를 만들 수 있으면 1을, 만들 수 없으면 0을 return 하도록 solution 함수를 완성해보세요.

빠른 풀이

function solution(before, after) { return after.split('').sort().join() === before.split('').sort().join() ? 1 : 0; }
JavaScript
복사