티스토리 뷰
문제를 해결하기 위한 조건을 정리해보았다.
1. 각 음식 종류별로 두 선수가 동일하게 먹을 수 있는 음식 개수
2. 각 음식을 배치하는데 필요한 문자열 생성
3. 생성된 문자열을 중앙의 '0'을 기준으로 좌우 배치
function solution(food) {
let left = "";
let right = "";
for (let i = 1; i < food.length; i++) {
const count = Math.floor(food[i] / 2);
if (count > 0) {
left += i.toString().repeat(count);
}
}
right = left.split('').reverse().join('');
return left + "0" + right;
}
더 간결한 코드는 다음과 같다.
다른 사람의 코드
function solution(food) {
let res = '';
for (let i = 1; i < food.length; i++) {
res += String(i).repeat(Math.floor(food[i]/2));
}
return res + '0' + [...res].reverse().join('');
}
로직은 같지만 문자열 연결 방식에 차이가 있다.
이 코드에서는 res라는 문자열 변수에 좌측 문자열을 모두 저장하고,
그 좌측 문자열을 뒤집어 최종 문자열을 구한다.
이 코드가 더 간결하며 중간 변수 없이 res 하나로 좌우측 문자열을
처리하기 때문에 더욱 간결하다.
문자열 처리 방식 역시 차이가 나타나는데,
[...res].reverse().join('')
이 코드에서는 스프레드 연산자를 사용해 배열을 변환하고 다시 조합하는 반면,
이전 코드에서는 'split('')'을 사용해 문자열을 배열로 변환하고 다시 문자열로 조합한다.
left.split('').reverse().join('')
'Oops, All Code! > 🤯 Oops, My Algorithm!' 카테고리의 다른 글
♡̈ 13. 프로그래머스:: 음양 더하기 (0) | 2024.07.12 |
---|---|
♡̈ 12. 프로그래머스:: 핸드폰 번호 가리기 (0) | 2024.07.12 |
♡̈ 10. 프로그래머스:: 옹알이(2) (0) | 2024.07.10 |
♡̈ 09. 프로그래머스:: 과일 장수 (0) | 2024.07.10 |
♡̈ 08. 프로그래머스:: 추억 점수 (0) | 2024.07.10 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 어른의어휘공부
- 프로토타입
- 트러블슈팅
- 플리마켓후기
- javascript
- 경험플리마켓
- 서평
- react
- 일급객체
- 어휘력
- 책추천
- 카페추천
- 소사벌
- 도서리뷰
- 타입좁히기
- 안성스타필드
- 비즈플리마켓
- 도서추천
- 소사벌맛집
- 코딩테스트
- 프리코스
- 카드뉴스
- 프론트엔드
- 대학생팝업스토어
- js
- 회고
- 플리마켓운영
- typescript
- 대학생플리마켓
- 우아한테크코스
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
글 보관함