D+2 ) Java로 코테 풀어보기 2일차.. 코드트리로 기본 개념 학습 후 백준에서 구현 문제 위주로 풀어보는데, 아직은 문제가 쉬워서 그런지 할 만한가..!? ㅎㅎ
문제
도현이는 바구니를 총 N개 가지고 있고, 각각의 바구니에는 1번부터 N번까지 번호가 매겨져 있다. 또, 1번부터 N번까지 번호가 적혀있는 공을 매우 많이 가지고 있다. 가장 처음 바구니에는 공이 들어있지 않으며, 바구니에는 공을 1개만 넣을 수 있다.
도현이는 앞으로 M번 공을 넣으려고 한다. 도현이는 한 번 공을 넣을 때, 공을 넣을 바구니 범위를 정하고, 정한 바구니에 모두 같은 번호가 적혀있는 공을 넣는다. 만약, 바구니에 공이 이미 있는 경우에는 들어있는 공을 빼고, 새로 공을 넣는다. 공을 넣을 바구니는 연속되어 있어야 한다. 공을 어떻게 넣을지가 주어졌을 때, M번 공을 넣은 이후에 각 바구니에 어떤 공이 들어 있는지 구하는 프로그램을 작성하시오.
https://www.acmicpc.net/problem/10810
해설
1. 바구니 N개, 각 바구니는 1~N까지 번호가 있음
2. 처음에는 바구니에 공이 존재하지 않음
3. 바구니에는 공 1개만 넣을 . 수있음
4. M번 공을 넣을 때, 한 번 공 넣을 때마다 공 넣을 바구니 범위를 미리 정함
5. 정한 바구니에 모두 같은 번호가 적혀있는 공을 넣음
6. 이미 바구니에 공이 있으면 공을 전부 빼고 새로운 번호의 공을 넣음
문제를 차근 차근 읽어보면서 풀어보면 어려운 문제는 아닌 것 같다.
코드
import java.util.Scanner;
public class Ball {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int n,m;
n=sc.nextInt();
m=sc.nextInt();
int[] balls = new int[n+1]; // 기본적으로 값이 0으로 초기화됨
int a,b,c;
for (int i=1; i<=m; i++){ //m번까지 입력 받기
a=sc.nextInt();
b=sc.nextInt();
c=sc.nextInt();
for (int j=a; j<=b; j++){
balls[j]=c;
}
}
for (int i=1; i<=n; i++){
System.out.print(balls[i]+" ");
}
}
}
해설 순서에 맞게 코드를 그대로 구현한 것이다. 딱히 복잡한 코드는 아니니 풀이는 생략하겠다!
결과
한 번에 성공했다~~!⭐️
'알고리즘' 카테고리의 다른 글
[프로그래머스] - PCCP 기출문제 1 (0) | 2025.04.25 |
---|---|
[백준]- 9086번 (0) | 2025.04.25 |
[백준] - 2480번 (0) | 2025.04.25 |
[백준]- 2225번 (0) | 2025.04.25 |
[백준] - 10610번 (0) | 2025.04.24 |