(JS) Programmers : 붕대 감기

2024. 10. 4. 01:41·컴퓨터 과학/프로그래머스 문제풀이
더보기
더보기

코딩테스트 연습 - [PCCP 기출문제] 1번 / 붕대 감기 | 프로그래머스 스쿨 (programmers.co.kr)

 

프로그래머스

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

programmers.co.kr

문제를 풀기위해 아래와 같은 요소들을 고려하였다.

  1. 가독성과 안정성을 위한다면 주어진 조건을 순서대로 구현하는것이 좋지만 코드를 간소화 하거나 실행시간을 줄이기 위해서는 생략이나 이동이 가능한 코드는 조절을 하는것이 유리하다.
  2. return문은 코드 마지막에 한개만 존재해야 하는것이 아니다. 결과가 존재하여 더이상의 연산이 필요없을때는 바로 return문을 사용해도 무관하다.
  3. 회복과 피해를 반복하는 과정 중간에 캐릭터가 죽는다면 더이상의 연산을 진행하지 않고 -1을 반환한다. 연산을 중단하지 않으면 죽은 이후에 높은 회복량으로 다시 체력이 오를 가능성이 있다.
더보기
더보기
function solution(bandage, health, attacks) {
    let answer = health;
    
    for(let i = 0;i<attacks.length;i++) {
    	// 이번턴에 사용하는 시간 계산
        let nowTime = i === 0 ? attacks[i][0] : attacks[i][0] - attacks[i-1][0];
        // 1초당 회복량 계산
        answer += (nowTime-1) * bandage[1];
        // 연속 성공시의 추가 회복량 계산
        answer += Math.floor((nowTime-1)/bandage[0]) * bandage[2];
        // 체력이 최대치를 넘을 경우 보정
        if(answer>health) answer=health;
        // 피해량 계산
        answer -= attacks[i][1];
        // 캐릭터가 죽었을 경우 -1을 반환하고 종료
        if(answer <= 0) return -1;
    }
    
    return answer;
}

 

 

• break

break를 사용하면 반복문의 중간에 현재 반복문을 종료하도록 할 수 있다.

let arr = [10, 20, 30, 40, 50];

for(let i=0;i<arr.length;i++) {
    console.log(arr[i]);
    if(i === 2) break;
}

//10, 20, 30 이 출력됨

 

반복문이 진행되는동안 i === 2 가 되면 break 문에 의해 반복문이 중단된다.

i가 0, 1, 2 일때 console.log가 동작하고 반복문이 종료되므로 10, 20, 30이 출력된다.

'컴퓨터 과학 > 프로그래머스 문제풀이' 카테고리의 다른 글

(JS) Programmers : 문자열 내 p와 y의 개수 - match()  (0) 2024.10.06
(JS) Programmers : JadenCase 문자열 만들기 - toUpperCase(), toLowerCase()  (0) 2024.10.04
(JS) Programmers : 신고 결과 받기 - Set()  (0) 2024.10.01
(JS) Programmers : 성격 유형 검사하기 - 객체를 배열로 변환, 절댓값  (0) 2024.09.30
(JS) Programmers : 달리기 경주 - 동적 객체 key와 배열/객체 탐색  (0) 2024.09.30
'컴퓨터 과학/프로그래머스 문제풀이' 카테고리의 다른 글
  • (JS) Programmers : 문자열 내 p와 y의 개수 - match()
  • (JS) Programmers : JadenCase 문자열 만들기 - toUpperCase(), toLowerCase()
  • (JS) Programmers : 신고 결과 받기 - Set()
  • (JS) Programmers : 성격 유형 검사하기 - 객체를 배열로 변환, 절댓값
루트노트
루트노트
  • 루트노트
    루트노트
    루트노트
  • 글쓰기 관리
  • 전체
    오늘
    어제
    • 분류 전체보기 (74)
      • 웹 (46)
        • HTML, CSS (11)
        • JS (11)
        • Node.js (3)
        • React (10)
        • Next.js (8)
        • MongoDB (1)
        • Design (2)
      • 애플리케이션 (5)
        • Swift (4)
        • React Native (1)
      • AI (0)
        • 컴퓨터 비전 (영상처리) (0)
      • 임베디드 (4)
        • 아두이노 (0)
        • 라즈베리파이 (0)
        • 젯슨 (1)
        • 리눅스 (3)
      • 컴퓨터 과학 (18)
        • 자료구조 (0)
        • 알고리즘 • 수학 (3)
        • 백준 문제풀이 (4)
        • 프로그래머스 문제풀이 (9)
        • 기타 (2)
      • 개인 (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 최근 글

  • 인기 글

  • hELLO· Designed By정상우.v4.10.3
루트노트
(JS) Programmers : 붕대 감기
상단으로

티스토리툴바