[ 프로그래머스 ] 컨트롤 제트 ( JS )

2024. 7. 13. 17:57·Algorithm/Javascript

https://school.programmers.co.kr/learn/courses/30/lessons/120853

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 


[ 문제 ]

 

[ 내 풀이 ]

function solution(s) {
    // 문자열 s를 공백을 기준으로 나누어 배열로 만듦
    let temp_list = s.split(' ');
    let sum = 0;  // 합계를 저장할 변수 초기화
    
    // 배열의 각 요소를 순회
    for(let i = 0; i < temp_list.length; i++) {
    
        // 현재 요소가 'Z'일 경우
        if(temp_list[i] === 'Z') {
        
            // 이전 숫자를 빼줌 (Z는 이전 값을 취소하는 의미)
            sum -= Number(temp_list[i - 1]);
            
        } else {
        
            // 숫자를 더해줌
            sum += Number(temp_list[i]);
        }
    }
    
    return sum;  // 최종 합계 반환
}

 

[ 다른 풀이 ]

// 스택처럼 푸는방법

function solution(s) {
    const stack = []
    s.split(' ').forEach((target) => {
        if(target === 'Z') stack.pop();
        else stack.push(+target)
    })
    return stack.length ? stack.reduce((pre, cur) => pre + cur) : 0;
}
// indexOf + reduce 활용

function solution(s) {
    let arr = s.split(" ");
    while ( arr.indexOf('Z') > -1) {
        arr.splice( arr.indexOf('Z')-1, 2);
    }
    return arr.reduce((a,b) => parseInt(a) + parseInt(b),0)
}
// 삼항연산자 + reduce 활용

function solution(s) {
    s = s.split(' ');
    let arr = [];
    for (let v of s) v === 'Z' ? arr.length ? arr.pop() : '' : arr.push(v);
    return arr.reduce((a,v)=>a+ +v,0);
}
반응형
저작자표시 비영리 변경금지 (새창열림)

'Algorithm > Javascript' 카테고리의 다른 글

[ 프로그래머스 ] 삼각형의 완성조건(1) ( JS )  (0) 2024.07.19
[ 프로그래머스 ] 배열 원소의 길이 ( JS )  (0) 2024.07.14
[ 프로그래머스 ] 숨어있는 숫자의 덧셈(1) ( JS )  (0) 2024.07.10
[ 프로그래머스 ] 합성수 찾기 ( JS )  (0) 2024.06.28
[ 프로그래머스 ] 주사위의 개수 ( JS )  (0) 2024.06.26
'Algorithm/Javascript' 카테고리의 다른 글
  • [ 프로그래머스 ] 삼각형의 완성조건(1) ( JS )
  • [ 프로그래머스 ] 배열 원소의 길이 ( JS )
  • [ 프로그래머스 ] 숨어있는 숫자의 덧셈(1) ( JS )
  • [ 프로그래머스 ] 합성수 찾기 ( JS )
heee1
heee1
FE 개발자를 희망하는 임희원 입니다.
  • heee1
    heee1.blog
    heee1
  • 전체
    오늘
    어제
    • 분류 전체보기 (69)
      • Front-end (1)
        • Javascript (4)
        • Typescript (1)
        • React (0)
        • Next.js (1)
        • Tool (1)
        • Git (1)
        • Prettier (0)
        • Test-Framework (1)
        • Vercel (1)
      • 교육 (28)
        • 항해99 : 웹개발 종합반 18기 (14)
        • 프로젝트 캠프 : React 2기 (5)
        • 코드잇 스프린트 : 단기심화 5기 (9)
      • Algorithm (29)
        • Javascript (24)
        • Python (5)
      • 코드 보관함 (1)
        • 배치스크립트 ( .bat ) (1)
  • 블로그 메뉴

    • 홈
  • 링크

    • github
  • 공지사항

  • 인기 글

  • 태그

    Baekjoon
    til
    오블완
    tailwindcss
    항해99
    백준
    티스토리챌린지
    코드잇
    jest
    next.js
    node.js
    자바스크립트
    Python
    JavaScript
    react-spring
    모킹
    css animation
    speed insights
    스프린트
    테스트 프레임워크
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
heee1
[ 프로그래머스 ] 컨트롤 제트 ( JS )
상단으로

티스토리툴바