민스씨의 일취일장

Algorithm | 문제 풀이 복기 본문

Data Structure & Algorithm

Algorithm | 문제 풀이 복기

읻민스 2026. 3. 23. 10:58
반응형

알고리즘 문제 풀이 후 복기하며 기록하는 페이지이다.

알고리즘 문제 풀이 복기

알고리즘 문제 풀이 복기 썸네일 이미지이다.
알고리즘 문제 풀이 복기

2026.03.23 - 백준 1065

주어진 수의 모든 자리수들간의 차이값이 일정한 수를 "한수"라고 한다고 한다. 문제의 핵심은 주어진 한 수의 모든 자리수들의 차이가 일정한지 묻는 문제이다.
수를 문자열(String)으로 변환 후, 반복문을 이용해서 해결하였다. 수가 아무리 크더라도 자릿수가 크지 않기 때문에 String 혹은 Character 배열로 다루는 것이 메모리를 적게 사용한다고 판단하였다.

각 자릿수간의 관계를 판단할 때, String 또는 Character 배열로 다룰 수 있다.

2026.03.24 - 백준 14425

문자열 집합이 주어지고, 추가로 주어지는 문자들 중 문자열 집합에 포함되는 것들의 수를 계산하는 문제이다.

핵심은 문자열 포함 여부를 판단할 때, 얼마나 빠르게 결정하는 것이다. 탐색의 시간복잡도를 O(1)로 줄이는 방법은 Hash를 이용하는 것이다. 그럼 사용할 수 있는 선택지는 HashMap 혹은 HashSet이 있는데. 이 경우에는 key, value로 관리할 2개의 값이 존재하는 게 아니므로, HashSet을 사용하는게 적절하다고 판단하였다.

HashMap vs. HashSet

2026.03.25 - 백준 1269

공집합이 아닌 두 집합이 주어지고, 서로에 대한 차집합들의 원소의 개수의 합을 구하는 문제이다.

집합이기 때문에 당연히 Set을 사용하려했고, 탐색을 해야 하기 때문에 HashSet을 사용했다. 원소의 개수는 20만개를 넘지 앟고, 원소의 값은 1억을 넘지 않는다. Hash를 사용했기 때문에 한 집합의 원소의 개수의 수는 의미가 없었고, 원소의 최대값이 1억이라는 점인데. Integer는 양수 21억까지는 문제없이 표현하니까 큰수로 다룰 필요는 없다.

이번 문제에서 한 가지 고민했던것은, Set의 순회여부인데, 순서만 보장되지 않을 뿐 순회는 문제없이 사용할 수 있어 Set 사용에 문제가 없을 것이란걸 확인하였다.

Set - 순회 가능하다.

 

728x90
반응형

'Data Structure & Algorithm' 카테고리의 다른 글

Java | 백준 10866 덱  (0) 2024.02.09