programmers 기초 Day14

Hwani·2024년 6월 14일

프로그래머스 DAY 1~25

목록 보기
40/51

문제 - 홀수 vs 짝수

풀이

class Solution {
    public int solution(int[] num_list) {
        int oddSum = 0;
        int evenSum = 0;

        for (int i = 0; i < num_list.length; i++) {
            if (i % 2 == 0) { 
                evenSum += num_list[i];
            } else {
                oddSum += num_list[i];
            }
        }

        return (oddSum > evenSum) ? oddSum : evenSum;
    }
}

설명

이 문제는 배열에서 홀수번째의 합 짝수번째의 합 중 더 큰 값을 리턴하는 문제

  • 홀수, 짝수의 합을 저장할 변수 선언
  • for문으로 배열을 순회하며 홀수와 짝수의 합을 저장한다.
  • 두 변수의 크기를 비교하여 큰 값을 리턴한다.

문제 - 5명씩

풀이

import java.util.*;

class Solution {
    public String[] solution(String[] names) {
        List<String> list = new ArrayList<>();
        for (int i = 0; i < names.length; i++) {
			if(i % 5 == 0) list.add(names[i]);
        }
        
        return list.toArray(new String[list.size()]);
    }
}

설명

String 배열을 5개씩 나누어 맨 앞의 이름을 찾는 문제

  • 값을 저장할 ArrayList 선언
  • for문으로 이름이 담긴 배열을 순회하여 5로 나누고 나머지가 0인 값이 첫번째 이름이 되기때문에 그 값을 리스트에 담아준다.
  • toArray() 메서드를 이용해 새로운 배열을 선언하고 그 값을 담아 리턴한다.

문제 - 할 일 목록

풀이

import java.util.*;

class Solution {
    public String[] solution(String[] todo_list, boolean[] finished) {
        ArrayList<String> list = new ArrayList<>();

        for (int i = 0; i < todo_list.length; i++) {
            if (finished[i] == false) {
                list.add(todo_list[i]);
            }
        }
        return list.toArray(new String[list.size()]);
    }
}

설명

String 타입의 배열과 boolean 타입의 배열을 비교하여 false인 todo_list 배열의 값을 찾는 문제

  • 값을 담아줄 ArrayList 선언
  • for문으로 todo_list 배열을 순회하고 조건문으로 finished[i]값이 false인 i값을 찾아 todo_list[i]와 비교하여 ArrayList에 담아준다.
  • toArray() 메서드를 이용하여 배열에 담아 리턴한다.

문제 - n보다 커질 때까지 더하기

풀이

class Solution {
    public int solution(int[] numbers, int n) {
        int answer = 0;
        
        for(int i = 0; answer <= n; i++) {
            answer += numbers[i];
        }
        
        return answer;
    }
}

설명

배열을 처음부터 하나씩 더해가다가 n 보다 커질 때 그 값을 리턴하는 문제

  • for문으로 하나씩 더해진 값이 저장된 변수 answer가 n보다 작거나 같을때까지 더해준다.
  • n이 더 큰 값이 되면 for문이 멈추기 때문에 answer를 리턴한다.

문제 - 수열과 구간 쿼리 1

풀이

class Solution {
    public int[] solution(int[] arr, int[][] queries) {
        for (int i = 0; i < queries.length; i++) {
            int s = queries[i][0];
            int e = queries[i][1];

            for (int j = s; j <= e; j++) {
                arr[j]++;
            }
        }
        return arr;
    }
}

설명

2차원 배열의 값이 s,e로 설정하고 1차원 배열 arr에 담긴 값이 s보다 크고 e보다 작다면 그 값을 1씩 증가시키고 리턴한다.

  • for문으로 s,e 변수 설정
  • for문으로 s보다 크고 e보다 작다면 arr 배열의 값을 1씩 증가시킨 후 리턴
profile
개발자될거야

0개의 댓글