주의! 본 게시물은 프로그래머스 '주차 요금 계산' 문제에 대한 중요 내용을 포함하고 있습니다. 풀기 전이시라면 이 점 참고해주시길 바랍니다!
링크: https://school.programmers.co.kr/learn/courses/30/lessons/92341
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제를 풀면서 차량 번호가 작은 자동차부터라는 문구가 있어서 객체에서 키 값을 기준으로 오름차순 정렬하는 방법이 필요했다. 객체에서 키 값을 기준으로 오름차순 정렬하는 방법은 다음과 같다.
const obj = { c: 3, b: 2, a: 1 };
const sortedObj = {};
Object.keys(obj).sort().forEach(function (key) {
sortedObj[key] = obj[key]
});
console.log(sortedObj); // {a: 1, b: 2, c: 3}
하지만 이 방법의 치명적인 단점은 키의 값이 객체일 경우 정렬이 제대로 되지 않는다라는 점이다. 그래서 어떤 방법이 있을까 고민했는데
Object.keys(obj)
.sort()
.map((obj) => answer.push(obj[key].value));
다음과 같이 키값을 정렬한 다음, 작은 키값부터 시작하면 간단히 해결할 수 있었다. 마치 닭잡기 위해 소 잡는 칼을 쓴 기분인데, 문제를 풀면서 더 쉽게 푸는 방법은 없을까에 대한 고민도 함께 해야겠다.
'TIL' 카테고리의 다른 글
TIL - 20221013 (0) | 2022.10.13 |
---|---|
TIL - 20221012 (0) | 2022.10.12 |
TIL - 20221011 (0) | 2022.10.11 |
TIL - 20221010 (0) | 2022.10.10 |
TIL - 20221009 (0) | 2022.10.09 |