본문 바로가기
코딩테스트/프로그래머스 기초

[코딩테스트 Lv.0] 할 일 목록

by 블루데이제이 2025. 3. 6.
728x90
반응형
문제 설명

오늘 해야 할 일이 담긴 문자열 배열 todo_list와 각각의 일을 지금 마쳤는지를 나타내는 boolean 배열 finished가 매개변수로 주어질 때, todo_list에서 아직 마치지 못한 일들을 순서대로 담은 문자열 배열을 return 하는 solution 함수를 작성해 주세요.

제한사항
● 1 ≤ todo_list의 길이 1 ≤ 100
● 2 ≤ todo_list의 원소의 길이 ≤ 20
    ○ todo_list의 원소는 영소문자로만 이루어져 있습니다.
    ○ todo_list의 원소는 모두 서로 다릅니다.
● finished[i]는 true 또는 false이고 true는 todo_list[i]를 마쳤음을, false는 아직 마치지 못했음을 나타냅니다.
● 아직 마치지 못한 일이 적어도 하나 있습니다.
입출력 예
todo_list							finished			result
["problemsolving", "practiceguitar", "swim", "studygraph"]	[true, false, true, false]	["practiceguitar", "studygraph"]
입출력 설명
입출력 예 #1
예제 1번의 todo_list 중에서 "problemsolving"과 "swim"은 마쳤고, "practiceguitar"와 "studygraph"는 아직 마치지 못했으므로 todo_list에서 나온 순서대로 담은 문자열 배열 ["practiceguitar", "studygraph"]를 return 합니다.

내 풀이
Java
import java.util.*;
class Solution {
    public String[] solution(String[] todo_list, boolean[] finished) {
        String[] answer = {};
        List<String> list = new ArrayList<>();
        for(int i = 0; i < todo_list.length; i++){
            if(!finished[i]){
                list.add(todo_list[i]);
            }
        }
        answer = new String[list.size()];
        
        for(int i = 0; i < list.size(); i++){
            answer[i] = list.get(i);
        }
        
        return answer;
    }
}
C
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>

// todo_list_len은 배열 todo_list의 길이입니다.
// finished_len은 배열 finished의 길이입니다.
// 파라미터로 주어지는 문자열은 const로 주어집니다. 변경하려면 문자열을 복사해서 사용하세요.
char** solution(const char* todo_list[], size_t todo_list_len, bool finished[], size_t finished_len) {
    // return 값은 malloc 등 동적 할당을 사용해주세요. 할당 길이는 상황에 맞게 변경해주세요.
    char** answer = (char**)malloc(sizeof(char*) * todo_list_len);
    int i;  
    int k;
    for(i = 0, k = 0; i < todo_list_len; i++){
        if(!finished[i]){
            answer[k++] = todo_list[i];
        }
    }
    answer[k] = '\0';    
    
    return answer;
}
Python
def solution(todo_list, finished):
    answer = []
    for i in range(len(todo_list)):
        if finished[i] == False:
            answer.append(todo_list[i])
    return answer

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

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

728x90
반응형