현재
[Java][BaekJoon][10810] 공 넣기 본문
<문제 설명>
문제를 제대로 이해하고 이해한대로 알고리즘을 구현할 수 있느냐 묻는 문제이다.
<풀이 코드>
<느낀점>
사실 알고리즘이 크게 어려운건 아닌데 문제가 복잡하게 쓰여 있어서 문제를 해석하기가 까다로웠다.
이럴때에는 입출력 예제를 보면 문제를 이해하는데 도움이 된다.
결과적으로 이 문제는
N = 배열의 크기 ( 즉,바구니의 갯수 )
M = 공을 넣는 과정을 몇번 반복할거냐
i, j = i번째 배열 부터 j번째 배열까지
k = int k값을 넣는다.
라는 문제가 된다. 사실 나는 이문제에서 배열의 값을 넣는데 어려움을 겪었다보기보다는
StringTokenizer를 쓰는데 살짝 문제를 겪었다.
한줄로 3개를 받고 넘어가는 과정에서 자꾸 오류가 났는데 나는 왜 StringTokenizer를 두번이나 인스턴스를 생성하는지
이해가 되지 않았다. 그래서 GPT선생님의 도움을 받았는데,
StringTokenizer라는 API는 생성된 후에 nextToken() 메서드를 호출할 때마다 문자열을 파싱하는 포인터가 한 번만 앞으로 이동하며, 다시 처음으로 되돌릴 수 없다. 라고 한다.
즉, 루프내의 여러줄 입력을 처리하기 위해서는 새로운 인스턴스를 생성해야만 한다는것이다.
실제로 실험해보니 새로운 인스턴스를 생성하지 않고서는 오류가 나서 실행이 안됐다.
<문제출처>
https://www.acmicpc.net/problem/10810
10810번: 공 넣기
도현이는 바구니를 총 N개 가지고 있고, 각각의 바구니에는 1번부터 N번까지 번호가 매겨져 있다. 또, 1번부터 N번까지 번호가 적혀있는 공을 매우 많이 가지고 있다. 가장 처음 바구니에는 공이
www.acmicpc.net
'알고리즘 > 백준' 카테고리의 다른 글
| [Java][BaekJoon][5597] 과제 안 내신 분..? (0) | 2023.09.11 |
|---|---|
| [Java][BaekJoon][10813] 공 바꾸기 (0) | 2023.09.11 |
| [Java][BaekJoon][2562] 최댓 (0) | 2023.09.10 |
| [Java][BaekJoon][10818] 최소, 최대 (0) | 2023.09.10 |
| [Java][BaekJoon][10871] X보다 작은 수 (0) | 2023.09.08 |