https://www.hackerrank.com/contests/leetcode-bootcamp-week-1/challenges/set-matrix-zeroes-21/problem?isFullScreen=true 문제 2차원 배열 주어지면 해당 요소의 행과 열의 모든 요소 0 으로 (in-place) 답안 public static void setZeroes(List<List<Integer>> grid) { int row = grid.size(); int column = grid.get(0).size(); int[] rowCheck = new int[row]; int[] columnCheck = new int[column]; for (int i = 0; i < row; i++) { for (int j = 0; j < column; j++) { if (grid.get(i).get(j) == 0) { rowCheck[i] = 1; columnCheck[j] = 1; } } } for (int i = 0; i < row; i++) { for (int j = 0; j < column; j++) { if (rowCheck[i] == 1 || columnCheck[j] == 1) { grid.get(i).remove(j); grid.get(i).add(j, 0); } } } } 메모 in-place 니까 돌면서 바꾸면 안 되고.. 체크해놓고 그 다음에 돌면서 바꿔줘야 된다. 단계적 사고~~
10.5 1) 3년간 들어온 소장품 집계하기 select classification, sum(case when year(acquisition_date) = 2014 then 1 else 0 end) as '2014', sum(case when year(acquisition_date) = 2015 then 1 else 0 end) as '2015', sum(case when year(acquisition_date) = 2016 then 1 else 0 end) as '2016' from artworks group by 1 order by 1 2) 12월 우수 고객 찾기 select customer_id from records where month(order_date) = 12 group by 1 having sum(sales) >= 1000 10.6 1) 스탬프를 찍어드려요 select case when total_bill >= 25 then 2 when total_bill >= 15 then 1 else 0 end as stamp, count(*) as count_bill from tips group by 1 order by 1 2) DVD 대여점 우수 고객 찾기 select customer_id from rental r join customer c using(customer_id) where c.active = 1 group by 1 having count(*) >= 35
https://www.hackerrank.com/contests/leetcode-bootcamp-week-1/challenges/contains-duplicate-27-2/problem?isFullScreen=true 문제 안에 중복 요소 있으면 true, 다 unique 하면 false 답안 public static boolean containsDuplicate(List<Integer> nums) { Set<Integer> set = new HashSet<>(); for (int num: nums) { int beforeSize = set.size(); set.add(num); if (beforeSize == set.size()) { return true; } } return false; } 메모 Set 으로 체크하면 So 간단..
로컬 이미지 생성에서는 GPU 메모리에 모델을 올리지 못해 실험을 시작하지 못하는 일이 생깁니다. Hugging Face는 2026년 7월 23일 Nunchaku의 4비트 추론을 Diffusers에 통합하는 방법 을 소개했습니다. 개발자가 이 기술을 살펴볼 때 풀어야 할 문제는 모델을 작게 저장하는 효과와 실제 생성 계산을 빠르게 하는 효과를 구분하는 것입니다. Nunchaku Lite는 무엇인가 Nunchaku Lite는 Nunchaku의 4비트 체크포인트를 익숙한 Diffusers 로딩 방식으로 사용하도록 연결합니다. 기반 기술인 SVDQuant는 주요 트랜스포머 계층에서 가중치와 활성값을 함께 4비트로 처리하는 W4A4 방식을 사용합니다. 가중치는 학습을 통해 정해진 모델의 값이고, 활성값은 입력을 처리하는 동안 생기는 중간 값입니다. W4A4는 저장된 가중치뿐 아니라 계산 도중 사용하는 활성값의 정밀도도 낮춥니다. 이를 통해 메모리 사용량을 줄이면서 이미지 생성의 디노이징 반복 구간을 가속하는 것을 겨냥합니다. 적용 대상은 주요 트랜스포머 계층이며, 파이프라인의 모든 구성요소를 일괄적으로 4비트로 바꾸는 방식은 아닙니다. Hugging Face의 설명에서 현대적인 텍스트 기반 이미지 생성 모델을 BF16으로 로드할 때 흔히 필요한 VRAM은 20~30GB입니다. 소비자용 GPU에서 양자화가 중요한 이유는 이런 메모리 요구량이 모델을 실행할 수 있는지부터 결정하기 때문입니다. 가중치 양자화와 계산의 차이 가중치 중심 양자화는 저장 공간을 줄이지만, 계산 전에 값을 높은 정밀도로 복원하는 경로에서는 속도 이득을 기대하기 어렵습니다. Diffusers는 이미 bitsandbytes, GGUF, torchao, Quanto 등의 양자화 백엔드를 지원합니다. Hugging Face는 이들 가운데 많은 방식이 가중치 중심 양자화를 사용한다고 설명합니다. 여기서 살펴볼 것은 백엔드 이름 자체보다 실제 계산에 어떤 정밀도의 값이 들어가는지입니다. 복원을 거치는 방식은 대체로 추론을 빠르게 만들지 않으며, 복원 작업 때문에 오히려 지연이 조금 늘어날 수도 있다는 것이 Hugging Face의 설명입니다. 따라서 체크포인트 파일 크기는 메모리 절감의 단서로 삼되, 생성 속도를 나타내는 측정값으로 취급해서는 안 됩니다. 로딩은 익숙하게, 준비는 별도로 Diffusers 통합으로 달라지는 실행 준비는 일반적인 from_pretrained() 호출로 Nunchaku 체크포인트를 불러올 수 있다는 점입니다. 이전에는 별도 추론 라이브러리가 필요했지만, 통합된 환경에서는 별도 파이프라인 클래스를 작성하거나 로컬에서 CUDA 코드를 컴파일할 필요가 없습니다. 다만 NVFP4 커널은 처음 사용할 때 Hugging Face Hub에서 다운로드합니다. 실행 환경을 재현하려는 팀이라면 사용한 체크포인트와 패키지 구성을 함께 기록하는 편이 좋습니다. 같은 로딩 코드를 다시 실행하는 것뿐 아니라, 그 코드가 어떤 구성으로 실행됐는지도 남기기 위해서입니다. 예제에서 확인할 구성과 조건 시작 예제는 사전 양자화된 ERNIE-Image-Turbo 체크포인트를 ErnieImagePipeline 으로 불러오며, 구성요소별로 서로 다른 최적화를 사용합니다. 트랜스포머에는 Nunchaku NVFP4를, 텍스트 인코더에는 bitsandbytes를 적용합니다. 생성 조건은 가로와 세로 각각 1024픽셀, 추론 8단계, guidance_scale=1.0 , 난수 시드 42입니다. 이는 예제를 실행한 조건이며 모든 모델에 적용할 권장 설정은 아닙니다. 다른 결과와 비교할 때는 체크포인트 이름에 더해 이런 생성 설정도 함께 보아야 합니다. 구체적인 GPU 지원 목록과 벤치마크 수치가 제시되지 않은 설명이므로, 특정 그래픽카드에서의 실행 가능 여부나 가속 배율은 이 예제만으로 정할 수 없습니다. 실제 작업으로 비교하는 순서 비교는 자신이 반복해서 사용하는 프롬프트와 해상도를 고정하는 데서 시작하는 편이 좋습니다. ITWorld의 「프론티어 모델의 그늘에서 벗어나는 로컬 LLM...올라마 완전 정복」은 모델 선택에서 매개변수 수뿐 아니라 작업 종류, 가용 메모리, 모델 구조를 함께 고려해야 한다고 설명합니다. 단순한 작업이라면 장비에 들어가는 가장 큰 모델이 반드시 필요한 것도 아닙니다. 이미지 생성에 이 관점을 적용할 때 측정할 시간은 요청을 시작한 순간부터 이미지가 나올 때까지입니다. Nunchaku가 겨냥하는 디노이징 구간의 개선이 사용자 대기 시간에 얼마나 반영되는지는 전체 생성 시간을 통해 살펴보게 됩니다. 최초 실행 기록은 이후 실행과 나누어 남깁니다. 첫 실행에는 다운로드와 준비 과정이 섞일 수 있어 반복 생성과 같은 조건으로 비교하기 어렵기 때문입니다. 결과 이미지도 함께 보아야 하며, 품질 평가 수치가 제시되지 않은 상태에서 기존 모델과 동일한 품질을 전제하지는 않습니다. 도입 조건과 검토 질문 메모리 제약이 있는 로컬 이미지 생성에서 기존 Diffusers 작업을 이어 가려는 경우에는 Nunchaku Lite를 비교 대상으로 둘 만합니다. 서비스에 도입하려면 실행 성공에 더해 승인 기준을 먼저 정해야 합니다. ITWorld의 「AI가 짓는 집, 설계도는 누가 그리나...AI 코드 시대의 거버넌스 설계」는 성능, 오류 처리, 관찰가능성과 같은 비기능 요구사항을 실행 가능한 승인 기준으로 만들라고 강조합니다. 이미지 생성 서비스에 적용하면 허용할 생성 시간과 실패 조건을 정하고, 실제 용도에 맞는 결과를 얻었는지 평가하는 일이 여기에 해당합니다. 로딩 코드가 짧아졌다는 이유만으로 운영 도입을 결정하는 접근은 맞지 않습니다. 비교 결과가 나왔을 때 도입을 승인할 기준은 무엇입니까? 생성이 실패하거나 요구한 결과를 얻지 못했을 때, 서비스가 받아들일 실패 조건은 어디까지입니까? 다른 팀원이 같은 실험을 재현할 수 있도록 체크포인트, 패키지 구성, 생성 설정을 함께 남겼습니까? 마무리 Nunchaku Lite로 실행 준비의 부담이 줄어든 만큼, 도입 판단에서는 같은 조건으로 얻은 결과와 그 결과를 반복해서 재현할 수 있는지를 우선할 만합니다. 4비트라는 표기보다 자신의 작업에서 남긴 비교 기록을 선택의 근거로 삼는 것이 이 글의 제안입니다. 원문: webi 기술 블로그 참고한 자료: Bringing Nunchaku 4-bit Diffusion Inference to Diffusers 프론티어 모델의 그늘에서 벗어나는 로컬 LLM...올라마 완전 정복 AI가 짓는 집, 설계도는 누가 그리나...AI 코드 시대의 거버넌스 설계
https://www.hackerrank.com/contests/leetcode-bootcamp-week-1/challenges/valid-palindrome-60/problem?isFullScreen=true 문제 주어진 string 에서 문자/숫자 아닌 거 빼고 앞뒤로 똑같은지 답안 public static boolean isPalindrome(String s) { int i = 0; int j = s.length() - 1; while (i < j) { while ((i < j) && !Character.isLetterOrDigit(s.charAt(i))) { i++; } while ((i < j) && !Character.isLetterOrDigit(s.charAt(j))) { j--; } if (Character.toLowerCase(s.charAt(i)) != Character.toLowerCase(s.charAt(j))) { return false; } i++; j--; } return true; } 메모 투포인터로.. 접근은 잘 했지만 while 문 돌 때 이중 while 문에서도 i < j 를 체크해줘야 된다는 것을 까묵.. 꼼꼼히 체크해주자!!!
https://www.hackerrank.com/contests/leetcode-bootcamp-week-1/challenges/rotate-image-31-1/problem?isFullScreen=true 문제 2차원 배열 주어지면 시계 방향으로 90도 회전 답안 public static void rotate(List<List<Integer>> grid) { int row = grid.size(); int column = grid.get(0).size(); for (int i = 0; i < row; i++) { for (int j = i + 1; j < column; j++) { int tmp = grid.get(i).get(j); grid.get(i).remove(j); grid.get(i).add(j, grid.get(j).get(i)); grid.get(j).remove(i); grid.get(j).add(i, tmp); } } for (int i = 0; i < row; i++) { for (int j = column - 1; j >= 0; j--) { int tmp = grid.get(i).get(j); grid.get(i).remove(j); grid.get(i).add(tmp); } } } 메모 90도 돌리려면 행렬을 transpose 하고, 각 행을 역순으로 바꿔주면 된다. transpose 는 어떻게 하는가.. 가 어려웠는데 for 문에서 대각선 위쪽만 돌아주면 되는 것! 그리고는 쓸데없이 List<List > 로 인풋을 줘서 그거 처리하는 것만 어려웠다.
무슨 일이 있었나 신한은행·KB국민은행의 고객정보 유출 사고 이후에도 'AI 해킹' 의심 공격이 국내 금융권 전반으로 번지고 있다. 2026년 10월 6일 금융감독원은 12개국에서 유입된 공격자 IP 28개를 차단하도록 금융권에 지시했다고 밝혔다. 같은 날 토스뱅크는 유사한 침입 시도를 방어에 성공했다고 밝혔고, 케이뱅크와 카카오뱅크에도 동일한 유형의 접속 시도가 포착된 것으로 전해졌다. 국민건강보험공단 역시 AI 해킹 확산 우려에 긴급 비상대책회의를 여는 등 대응 범위가 금융권을 넘어서고 있다. 이번 공격의 배후로 지목되는 것은 'ARTEX'로 불리는 공격 도구다. 신한은행에 대한 크리덴셜 스터핑(탈취한 계정정보 대입 공격) 과정에서 사용된 공격 서버의 HTML 제목에 '자주渗透测控制台(자율 침투 테스트 콘솔)'라는 문자열이 포함된 사실이 확인되며 ARTEX와의 연관성이 제기됐다. ARTEX는 LLM과 멀티에이전트 구조를 기반으로 정보 수집, 취약점 발견, 공격 경로 설계, 보안 도구 실행, 취약점 검증까지 전 과정을 자동화하도록 설계된 자율 침투테스트 시스템으로, 중국어 위주로 깃허브에 오픈소스로 공개돼 있다. 다만 이 도구가 실제 이번 공격에 쓰였는지는 금융당국이나 은행 측에서 공식 확인하지 않았다. 왜 중요한가 이번 사태가 주목받는 이유는 단일 은행의 보안 사고가 아니라, 공격자가 '자동화된 침투 파이프라인'을 통해 여러 금융기관을 순차적으로 두드리는 양상을 보이고 있다는 점이다. 토스뱅크처럼 방어에 성공한 사례가 있는 반면 케이뱅크·카카오뱅크처럼 시도 단계에서 포착된 경우도 있어, 공격이 특정 기관을 노린 것이 아니라 금융권 전반을 대상으로 한 광범위한 스캐닝에 가깝다는 분석이 나온다. 업계 전문가들은 기존의 망분리 중심 방어 체계만으로는 LLM 기반 자율 공격 도구의 속도와 범위를 따라잡기 어렵다고 지적한다. 사람이 수작업으로 수행하던 정찰·취약점 탐색·공격 경로 설계를 AI가 자동화하면서 공격 주기가 극적으로 단축되고 있기 때문이다. 실제로 국내 보도에 따르면 이런 공격 도구의 사용료가 매우 저렴한 수준인 것으로 알려지면서, 자본력이 크지 않은 공격자도 금융권급 표적을 노릴 수 있게 됐다는 우려가 커지고 있다. 이번 사태는 금융권뿐 아니라 개인정보를 다루는 공공기관 전반이 AI 공격에 대한 탐지·대응 체계를 재점검해야 한다는 신호로 읽힌다. 원문: https://www.newsis.com/view/NISX20261006_0003816173
무슨 일이 있었나 프랑스 AI 스타트업 미스트랄이 2026년 10월 6일(현지시간) 자사 최대 규모의 오픈웨이트(가중치 공개형) 모델 '미스트랄 라지 4(Mistral Large 4, 별칭 '르 총크(Le Chonk)')'를 공개했다. 약 1조 500억 개(1.05T) 파라미터를 가진 혼합전문가(MoE) 구조의 멀티모달 모델로, 엔비디아의 그레이스 블랙웰 GPU 4000장을 동원해 유럽 내 자체 데이터센터에서 약 2개월에 걸쳐 처음부터 학습시켰다. 미스트랄은 이 모델이 종합 벤치마크 성능에서 전 세계 오픈웨이트 모델 상위권에 들 것이며, 특히 중국을 제외한 지역에서 개발된 오픈웨이트 모델 중에서는 상당한 격차로 가장 강력하다고 주장했다. 가중치는 10월 27일 공개 예정이며, 그 전까지는 개발자·사이버보안 전문가·국가기관 등을 대상으로 미스트랄 스튜디오 API를 통한 제한적 프리뷰 형태로 제공된다. 미스트랄 CEO는 AI 통제권(주권)을 중시하는 기관·기업을 핵심 공략 대상으로 꼽으며 "유럽도 AI 경쟁력이 있다"고 강조했다. 왜 중요한가 현재 최상위 오픈웨이트 모델 경쟁은 사실상 미국 빅테크의 폐쇄형 모델과 중국의 딥시크·큐원·키미 등 오픈웨이트 모델 사이의 2파전으로 흘러가고 있었다. 이런 구도에서 유럽산 모델이 "중국 밖에서는 최강"이라는 포지셔닝으로 등장한 것은, 자국 데이터센터에서 학습해 데이터 주권과 규제 준수를 동시에 내세울 수 있는 '유럽형 대안'이 실제로 경쟁력을 갖추기 시작했다는 신호로 해석된다. 특히 미스트랄이 사이버보안 전문가와 국가기관을 초기 프리뷰 대상으로 명시한 점은 주목할 만하다. 오픈웨이트 모델은 누구나 내려받아 자체 서버에서 구동·수정할 수 있다는 점에서 민감한 공공·안보 영역에서 외부 클라우드 의존 없이 AI를 활용하려는 수요와 맞물린다. 동시에 최근 한국을 비롯한 여러 국가에서 LLM 기반 자동화 해킹 도구가 실제 공격에 활용되는 사례가 보고되는 상황에서, 강력한 오픈웨이트 모델의 확산이 방어뿐 아니라 공격 측 역량 강화로도 이어질 수 있다는 점은 업계가 함께 주시해야 할 대목이다. 원문: https://www.yna.co.kr/view/AKR20261007004800085?input=1195m