티스토리 뷰

백준 온라인 저지(BOJ) 10810번 공 넣기
https://www.acmicpc.net/problem/10810
10810번: 공 넣기
도현이는 바구니를 총 N개 가지고 있고, 각각의 바구니에는 1번부터 N번까지 번호가 매겨져 있다. 또, 1번부터 N번까지 번호가 적혀있는 공을 매우 많이 가지고 있다. 가장 처음 바구니에는 공이
www.acmicpc.net
* 사용언어 : C언어, C++
1. 문제
N개의 바구니가 있고 각 바구니에는 1개의 공만 넣을 수 있음
N개의 바구니는 1번부터 N번까지 번호가 적혀있는데, 입력에 따라 M번 공을 집어넣게 됨
각 회차마다 공을 넣는데, i번 바구니 부터 j번 바구니까지 k번 번호가 적힌 공을 넣음
(이미 공이 있는 경우 공을 빼고 새로운 공을 넣음)
M 번 반복 후 1번 바구니부터 N번 바구니까지 들어있는 공의 번호를 출력 (없으면 0 출력)

2. 풀이
구현 난이도에 비해서 문제 이해가 어려운 문제였습니다.
문제를 요약하면 다음과 같이 정리할 수 있습니다.
1) 공을 1개 씩 넣을 수 있는 바구니가 N개 있다. (1번 ~ N번)
2) 그리고 1부터 N까지 적혀있는 공이 있는데, 각 번호의 공은 모든 바구니를 채울 수 있을 만큼 많이 있다.
3) M번 반복하면서 공을 넣을건데, 주어진 입력에 따라 i부터 j까지 모든 바구니에 k가 적힌 공을 넣는다.
그리고 구현에 필요한 조건이 2가지 있는데
하나는 이미 공이 있는 경우 공을 빼고 새로운 공을 넣는다는 것이고,
또 다른 하나는 공이 들어있지 않은 바구니는 마지막에 0을 출력한다는 것 입니다.
크기가 N + 1 인 int 배열을 선언하고 (N번까지 처리하기 쉽게)
기존에 값이 있든 없든 그냥 k번을 덮어쓰면 됩니다.
코드 구현 자체는 단순하나, 배열 index 개념이 부족하면 헷갈릴 수 있는 문제입니다.
배열을 직접 손으로 그려보고 idx 가 1일 때 어떻게 처리되고, 2일 때는 어떻고, ... 를
하나씩 따져보면서 파악해보면 배열을 이해하고 사용하는데 도움이 될 겁니다.
3. 코드
#ifndef _CRT_SECURE_NO_WARNINGS
#define _CRT_SECURE_NO_WARNINGS
#endif
#include <cstdio>
const int LM = 101;
int arr[LM];
int main() {
#ifdef _WIN32
freopen("input.txt", "r", stdin);
#endif // _WIN32
int n, m;
scanf("%d %d", &n, &m);
int i, j, k, idx;
while (m--) {
scanf("%d %d %d", &i, &j, &k);
for (idx = i; idx <= j; ++idx) arr[idx] = k;
}
for (idx = 1; idx <= n; ++idx) printf("%d ", arr[idx]);
return 0;
}
* 전역 변수로 int 형 배열을 선언하면 따로 초기화를 하지 않아도 됩니다. (0 으로 초기화됨)
'개발자 > 문제풀이 (C언어)' 카테고리의 다른 글
| [백준/BOJ] 10811번 바구니 뒤집기 (C/C++) (0) | 2023.04.04 |
|---|---|
| [백준/BOJ] 10813번 공 바꾸기 (C/C++) (0) | 2023.04.03 |
| [백준/BOJ] 25314번 코딩은 체육과목 입니다 (C/C++) (0) | 2023.04.01 |
| [백준/BOJ] 11382번 꼬마 정민 (C/C++) (0) | 2023.03.26 |
| [정올/JUNGOL] 3115번 긴 자리 나눗셈 (C/C++) (0) | 2023.03.26 |
- Total
- Today
- Yesterday
- 똑똑하고게으르게
- 나의첫죽음학수업
- 문현공
- 이용제한
- 자료구조
- 시대예보
- 센터독서클럽
- 이상감지
- 마침내 특이점이 시작된다
- 독서감상평
- 정세현의통찰
- 독서 감상평
- 세상을 읽는 새로운 언어 빅데이터
- 최재천의공부
- 인간본성불패의법칙
- 관계가상처가되기전에
- 아가별
- JUNGOL
- 동탄에듀센터
- 삼성전자
- 시스템개발자
- 동탄에듀센터2
- 당신도느리게나이들수있습니다
- 알고리즘
- 정올
- 자동차보험
- 쿠프마케팅
- 영화감상평
- 여가포인트
- 유연함의힘
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |