[백준] 10810번: 공 넣기 - JAVA

2024. 9. 16. 02:44·알고리즘

[작성일: 2023. 08. 24]

 

https://www.acmicpc.net/problem/10810

 

 

풀이

import java.io.*;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) throws IOException {

        Scanner sc = new Scanner(System.in);

        int n = sc.nextInt(); // 바구니의 갯수
        int m = sc.nextInt(); // 공을 넣을 횟수

        int[] basket = new int[n];

        for (int i = 0; i < m; i++) {
            int start = sc.nextInt();  // 시작 바구니
            int end = sc.nextInt();  // 끝 바구니
            int num = sc.nextInt();  // 몇 번 공인지?

            for (int j = start-1; j < end; j++) {
                basket[j] = num;
            }
        }

        for (int k = 0; k < n; k++) {
            System.out.print(basket[k]+" ");
        }
    }
}

 

이 문제는 문제 자체도 이해하기가 어려웠다. 

첫 줄에 바구니의 갯수와 공을 넣을 횟수를 입력받는 것까지는 어렵지 않은데 그 후를 이해하는데 한참 걸렸던 거 같다.

 

시작바구니를 start, 끝 바구니를 end, 몇 번 공을 넣을 건지를 num으로 입력받는다.

1, 2, 3을 입력받았다면 1번 바구니부터 2번 바구니까지 3번이 적혀있는 공을 넣는 것이다.

그렇게 되면 현재 바구니에는 3 3 0 0 0 이런 식으로 공이 들어가있게 된다.

 

그 후 예제처럼 쭉 진행해보자.

 

3, 4, 4를 입력받게 되면 3번 바구니부터 4번 바구니까지 4번 공을 넣는다. [ 3 3 4 4 0 ]

1, 4, 1을 입력받게 되면 1번 바구니부터 4번 바구니까지 1번 공을 넣는다. 문제에서 이미 공이 들어가 있는 바구니라면 들어있는 공을 빼고 새 공을 넣는다고 했으니 바구니 상태는 [ 1 1 1 1 0 ] 이 된다.

마지막으로 2, 2, 2를 입력받으면 2번 바구니에만 2번 공을 넣으면 되기 때문에 최종 바구니는 [ 1 2 1 1 0 ] 이 된다. 

 

반복문을 만들 때 시작은 j = start - 1로 해주었다. 배열은 0번부터 시작하는데 바구니는 1번부터 시작하기 때문에 배열의 index에 맞추기 위해 1을 빼준 것이다. start가 1일 경우 배열에서는 0번 인덱스에 해당되어야 한다.

 

저작자표시 비영리 변경금지 (새창열림)
'알고리즘' 카테고리의 다른 글
  • [백준] 10811번: 바구니 뒤집기 - JAVA
  • [백준] 10813번: 공 바꾸기 - JAVA
  • [백준] 10951번: A+B(4) - JAVA
  • [백준] 2439번: 별 찍기(2) - JAVA
뚜비
뚜비
1년차 백엔드&iOS 개발자의 감자 탈출 블로그 🥔🥔
  • 뚜비
    뚜비의 개발로그
    뚜비
  • 전체
    오늘
    어제
  • 글쓰기     관리
    • Devlog
      • Back-End
        • Java
        • Spring
        • JPA
        • HTTP
        • Security
        • Back-End
        • Front-End
      • 알고리즘
      • iOS
        • Swift
      • Database
      • Tips
        • Git & GitHub
        • A to Z
      • 프로젝트
      • 생각정리
  • 태그

    성능최적화
    jsp
    JPA
    Swift
    프로그래머스
    스프링
    자바스크립트
    sql
    MVC
    Spring Security
    의존성주입
    김영한
    Java
    DB
    백준
    다형성
    변수
    객체
    알고리즘
    게시판만들기
    spring
    html
    자바
    javascript
    데이터베이스
    Security
    Database
    HTTP
    생성자
    최주호
  • hELLO· Designed By정상우.v4.10.0
뚜비
[백준] 10810번: 공 넣기 - JAVA
상단으로

티스토리툴바