프로그래머스 5번 심폐소생술

KIMYEONGJUN·2026년 4월 30일
post-thumbnail

문제

내가 생각했을때 문제에서 원하는부분

심폐소생술은 다음과 같은 순서를 통해 실시합니다.

심정지 및 무호흡 확인 [check]
도움 및 119 신고 요청 [call]
가슴압박 30회 시행 [pressure]
인공호흡 2회 시행 [respiration]
가슴압박, 인공호흡 반복 [repeat]
주어진 solution 함수는 심폐소생술을 하는 방법의 순서가 담긴 문자열들이 무작위 순서로 담긴 리스트 cpr이 주어질 때 각각의 방법이 몇 번째 단계인지 순서대로 담아 return하는 함수입니다.
solution 함수가 올바르게 작동하도록 빈칸을 채워 solution 함수를 완성해 주세요.

내가 이 문제를 보고 생각해본 부분

basic_order에는 심폐소생술의 정상 순서가 문자열로 저장되어 있다.
외부 반복문에서는 cpr 배열의 항목들을 하나씩 순회한다.
내부 반복문에서는 각 cpr[i]가 basic_order 배열 중 어느 위치인지 찾는다.
찾으면 해당 단계 번호(인덱스 + 1)를 answer[i]에 넣고 내부 반복문을 종료한다(break).
마지막에 answer 배열을 반환하면 각 단계의 순서를 번호로 알 수 있다.

코드로 구현

package programmers;

// 프로그래머스 5번 심폐소생술
public class Main5 {
    public int[] solution(String[] cpr) {
        int[] answer = {0, 0, 0, 0, 0};
        String[] basic_order = {"check", "call", "pressure", "respiration", "repeat"};

        for(int i=0; i<cpr.length; i++){
            for(int j=0; j<basic_order.length; j++){
                if(cpr[i].equals(basic_order[j])){
                    answer[i] = j + 1;
                    break;
                }
            }
        }
        return answer;
    }
}

프로그래머스에서 빈칸 넣었을때 코드

package programmers;

import java.util.Arrays;

// 프로그래머스 5번 심폐소생술
public class Main5 {
    public int[] solution(String[] cpr) {
        int[] answer = {0, 0, 0, 0, 0};
        String[] basic_order = {"check", "call", "pressure", "respiration", "repeat"};

        for(int i=0; i<cpr.length; i++){
            for(int j=0; j<basic_order.length; j++){
                if(cpr[i].equals(basic_order[j])){
                    answer[i] = j + 1;
                    break;
                }
            }
        }
        return answer;
    }

    public static void main(String[] args) {
        Main5 sol = new Main5();
        String[] testInput = {"call", "respiration", "repeat", "check", "pressure"};
        int[] result = sol.solution(testInput);
        System.out.println(Arrays.toString(result)); // [2, 4, 5, 1, 3]
    }
}

위에 있는 코드를 변경한 코드

마무리

코드와 설명이 부족할수 있습니다. 코드를 보시고 문제가 있거나 코드 개선이 필요한 부분이 있다면 댓글로 말해주시면 감사한 마음으로 참고해 코드를 수정 하겠습니다.

profile
Junior backend developer

0개의 댓글