Skip to content

Syslians/4주차#23

Open
syslians wants to merge 4 commits into
mainfrom
syslians/4주차

Hidden character warning

The head ref may contain hidden characters: "syslians/4\uc8fc\ucc28"
Open

Syslians/4주차#23
syslians wants to merge 4 commits into
mainfrom
syslians/4주차

Conversation

@syslians

Copy link
Copy Markdown
Owner

백준 11723: 집합

<문제 해결 과정>
백준 11723번 집합 문제는 대량 연산(최대 3,000,000번)을 처리해야 하는 집합 관리 문제로, 초기 ArrayList 접근법에서 시간 초과를 겪었습니다.
indexOf나 contains 같은 메서드의 O(n) 복잡도가 연산이 많아질수록 병목현상이 있었고 이에 따라 시간초과 문제가 발생했습니다. 특히 all 연산 구현이 어려웠습니다.
이를 해결하기 위해 비트마스크를 도입, 단일 int 로 집합을 관리하며 모든 연산을 O(1) 로 최적화했습니다. 출력은 StringBuilder 로 모아 시간 초과를 방지했습니다.

<핵심>

  • 비트마스크: 집합을 32비트 int로 표현.
  • 효율성: 비트 연산이기에 빠르다. 연산당 O(1), 메모리 4바이트 사용.
  • 직관: 집합을 20개 스위치로 생각, 비트로 조작. 논리식 생각.

syslians added 4 commits July 20, 2025 22:06
백준 11723
백준 11723: 집합

<문제 해결 과정>
백준 11723번은 대량 연산(최대 3,000,000번)을 처리해야 하는 집합 관리 문제로, 초기 ArrayList 접근법에서 시간 초과를 겪었습니다. 
indexOf 의 O(n)  복잡도가 병목이었고, 특히 all 연산 구현이 어려웠습니다. 
이를 해결하기 위해 비트마스크를 도입, 단일 int 로 집합을 관리하며 모든 연산을 O(1) 로 최적화했습니다. 
출력은 StringBuilder 로 모아 시간 초과를 방지했습니다. 

<핵심>
- 비트마스크: 집합을 32비트 int로 표현. 비트마스크는 비트 연산이기에 
   O(1)로 구현 가능.
- 효율성: 연산당 O(1) 메모리 4바이트 사용.
- 직관: 집합을 20개 스위치로 생각, 비트로 조작.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant