본문 바로가기

PS/백준

[BOJ] 백준 10810 공 넣기 (Swift)

반응형

문제

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

 

10810번: 공 넣기

도현이는 바구니를 총 N개 가지고 있고, 각각의 바구니에는 1번부터 N번까지 번호가 매겨져 있다. 또, 1번부터 N번까지 번호가 적혀있는 공을 매우 많이 가지고 있다. 가장 처음 바구니에는 공이

www.acmicpc.net

풀이

N개의 바구니를 Int 자료형을 담은 1차원 배열로 N개 만들어야 겠다는 생각이 들었습니다.
index는 0부터 시작하므로, 총 N + 1 개를 만들어 주었습니다.
바구니가 비어있다면 0을 출력해주어야 하므로, 맨 처음에는 모두 비어있기 때문에 값은 0으로 초기화를 해주었습니다.

M개의 줄에 거쳐서 공을 넣는 방법이 주어지는데,
i번 부터, j번 바구니까지, k번 번호가 적힌 공을 넣습니다.
공이 이미 있다면 있는 공을 빼고, 새로 공을 넣게 됩니다.

뺴는 것을 직접 구현할 필요는 없고, 단순히 값을 바꿔주면 됩니다.

ArrayreplaceSubrange 메서드를 사용하여, 값을 바꿔줄 수 있습니다.
또는, i부터 j번 까지 반복문을 사용하여 k번 번호를 넣어주어도 됩니다.

저는 Array의 replaceSubrange 메서드를 사용하여 풀이하였습니다.

그 이후, 바구니의 1번 인덱스부터 출력해주면 됩니다.

소스코드

후기

ArrayreplaceSubrange를 처음 사용해 본 것 같습니다.
물론 for문으로도 풀이할 수 있지만, 다양한 풀이 방법이 있다는 것을 알면 좋을 것 같습니다.

반응형