Today I Learned
- Programmers 문제 풀기
- 이력서 넣기
Programmers 문제 풀기
인덱스 바꾸기
나의 풀이
function solution(my_string, num1, num2) {
return my_string
.split("")
.map((str, i) =>
i === num1 ? str = my_string[num2] : i === num2 ? str = my_string[num1] : str
).join("");
}
my_string을 배열로 만든 후에 map을 돌려서 인덱스에 따라 삼항연산자로 처리했다.
다른 사람의 풀이
function solution(my_string, num1, num2) {
my_string = my_string.split('');
[my_string[num1], my_string[num2]] = [my_string[num2], my_string[num1]];
return my_string.join('');
}
일단 my_string을 배열로 만든 후에 구조 분해 할당을 이용한다. 구조 분해 할당으로 기존 배열의 수정할 수 있다는 건 처음 알았다.😳
구조 분해 할당 활용 예시
기본 문법
const [a, b] = [1, 2];
console.log(a); // 1
console.log(b); // 2
const x = [1, 2, 3, 4, 5];
const [y, z] = x;
console.log(y); // 1
console.log(z); // 2
기본 변수 할당
var foo = ['one', 'two', 'three'];
var [one, two, three] = foo;
console.log(one); // "one"
console.log(two); // "two"
console.log(three); // "three"
값 교환
var [a, b] = [1, 3];
[a, b] = [b, a];
console.log(a); // 3
console.log(b); // 1
출처 https://charming-kyu.tistory.com/23
최고의 집합
누군가의 풀이
function solution(n, s) {
if (n > s) {
return [-1];
} else {
const dividend = s; // 피제수
const divisor = n; // 제수
const quotient = Math.floor(dividend / divisor); // 몫 계산
const remainder = dividend % divisor; // 나머지 계산
let arr = new Array(n).fill(quotient); // 길이가 5인 배열 생성 후 1로 초기화
for (let i = 1; i <= remainder; i++) {
arr[arr.length - i] = arr[arr.length - i] + 1;
}
return arr;
}
}
내가 푼 건 아니고 누가 문제 푸는 과정을 구경했다. 근데 멋진 풀이라서 기록용으로 남김 ㅋㅋ
회고
원티드에서 진행하는 프리온보딩 프론트엔드 챌린지 4월 커리큘럼이 딱 내가 궁금했던 부분을 다루고 있어서 좋은 기회가 되겠다 싶어 신청했다. 이제 내일부터 4월 첫째 주까지 기술면접 스터디가 진행되긴 하지만 일정이 많이 겹치진 않기 때문에 병행이 가능할 거 같다. 안 그래도 리액트 기초 공부가 필요하다고 생각했었는데 잘 됐음!
'알고리즘 > Programmers' 카테고리의 다른 글
[TIL] 2023.03.28 기술면접 스터디, Programmers 문제 풀기 (0) | 2023.03.29 |
---|---|
[TIL] 2023.03.27 기술면접 스터디, Programmers 문제 풀기 (4) | 2023.03.27 |
[TIL] 2023.03.25 Programmers 문제 풀기 (0) | 2023.03.26 |
[TIL] 2023.03.24 Programmers 문제 풀기 (0) | 2023.03.24 |
[TIL] 2023.03.23 Programmers 문제 풀기 (0) | 2023.03.23 |
댓글