피드로 돌아가기
Weekly Challenge: Maximum conflict
Dev.toDev.to
Backend

Binary 최적화와 시간 교차 검증을 위한 알고리즘 설계

Weekly Challenge: Maximum conflict

Simon Green2026년 4월 5일5beginner

Context

이진 문자열을 활용한 최대 홀수 값 생성 문제 직면. 시간 범위의 중첩 여부를 판별하는 충돌 검사 로직 필요. 특히 자정(Midnight)을 넘어가는 시간대 처리의 복잡성 존재.

Technical Solution

  • 정규 표현식을 통한 입력 문자열의 유효성 검증 및 1의 존재 여부 확인
  • 최댓값 및 홀수 조건을 충족하기 위해 '1-1개 제외 나머지 1 → 모든 0 → 마지막 1' 순서의 배치 전략 적용
  • HH:MM 형식의 시간을 분 단위 정수로 변환하는 정규화 함수 설계
  • 자정 경계 문제를 해결하기 위해 종료 시간이 시작 시간보다 빠른 경우 1440분을 기준으로 두 개의 Range 객체로 분리
  • 분 단위 시간 데이터를 Set 자료구조에 저장하여 중복 발생 시 즉시 충돌로 판단하는 해시 기반 검사 방식 도입

Key Takeaway

복잡한 시간 범위 계산 시 단위를 최소 공배수(분)로 정규화하고 경계 조건(자정)을 분리하여 처리하는 단순화 전략의 유효성 확인.


시간 중첩 검증 시 자정 경계 케이스를 위해 범위를 분할하거나 절대 시간(Timestamp)으로 변환하여 처리할 것

원문 읽기