전체 글 117

485. Max Consecutive Ones

Description 1. 배열을 순회하기 2. 1을 찾으면 index를 저장하기 3. 0을 찾으면 해당 index - (2)에서 찾은 index 빼기 4. 다시 1을 찾으면 index를 저장하기 ( 위 과정 반복) -------------------- 1. 배열 순회하기 2. 1을 찾으면 특정 변수에 +1 해주기 3. res 보다 큰 값이면 res에 넣어 갱신 4. 0 만나면 초기화 2가지 방법을 생각했고, 2가지 방법 모두 정답처리 Codefunc findMaxConsecutiveOnes(nums []int) int { res := 0 checkLength := 0 for _, n := range nums { if n == 1 { checkLength++ if checkLength > res..

leetcode , 백준 2026.05.14

482. License Key Formatting

Description1. 문자열 s가 주어지는데 문자열은 하이픈이 포함되어 있음2. 하이픈으로 구분 되는 문자열은 k개수가 됨## s = a-aa-bbbc-cc1. k가 3이라면 aaa-bbb-ccc임.2. k가 4라면 a-aabb-bccc문자열을 맨 끝에서부터 조회하는데, 이때 하이픈은 건너뛰며 문자열을 추가함몇 번째 문자열인지 확인하는 변수를 추가하여 1씩 증가하며 하이픈을 직접 추가하는 방식으로 풀었음.맨 끝에서부터 조회하기 때문에 문자열을 반환 직전에 다시 정렬해야함.Codefunc reverseString(s string) string { // 문자열을 rune 슬라이스로 변환 (UTF-8 다국어 지원) runes := []rune(s) // 양 끝에서 시작하여 가운데로 오며 swap for ..

leetcode , 백준 2026.05.14

463. Island Perimeter

Description격자 지도를 위에서 아래로, 왼쪽에서 오른쪽으로 하나씩 확인합니다. 땅(1)인 칸만 계산# 격자를 맨 왼쪽 위부터 맨 오른쪽 아래까지 순서대로 전체 탐색1. 현재 칸이 땅(1)이면 일단 결과에 +4를 함2. 현재 칸의 위쪽 칸을 확인해서 땅(1)이면 결과에서 -2를 함3. 현재 칸의 왼쪽 칸을 확인해서 땅(1)이면 결과에서 -2를 함Codefunc islandPerimeter(grid [][]int) int { res := 0 for i := 0; i

leetcode , 백준 2026.05.13

461. Hamming Distance

Description두 정수의 해밍 거리는 비트 연산자 ^ (XOR)로 다른 비트를 찾아낸 뒤, for 반복문 안에서 & 1과 >> 1 연산을 이용해 1의 개수를 cnt에 누적하여 구하는 방식임.서로 다른 x, y가 주어졌을 때, xor 연산을 통하여 0과 1이 다른 곳에 1을 구함.cnt에 1인 개수를 구하면 되었음이때 모든 자리에 1인 개수를 구하기 위해서 반복문과 &, >> 를 통하여 구했음Codefunc hammingDistance(x int, y int) int { xor_num := x ^ y cnt := 0 for xor_num > 0 { cnt += xor_num & 1 xor_num = xor_num >> 1 } return cnt}

leetcode , 백준 2026.05.13

459. Repeated Substring Pattern

Description해결법은 문자열 결합(String Concatenation)을 이용하는 것문자열 이어 붙이기, 문자열 s가 반복되는 패턴으로 이루어져 있다면, s를 두 번 이어 붙인 s + s 안에는 반드시 s가 원래 위치 외에 최소 하나 더 들어있어야 함 (최소 2번 이상이 반복 되어야 하기 때문에)1. s = "abab"라면, s+s = "abababab"가 됨2. 양 끝을 자른 doubleS[1:-1]은 "bababa"가 됩니다.해당 문자열에 s가 있기 때문에 해당 문자열은 반복 됨1. s = "aba"라면, s+s = "abaaba", 양 끝을 자르면 "baab"2. 여기엔 "aba"가 없으므로 반복이 아니라는 것Codefunc repeatedSubstringPattern(s string) b..

leetcode , 백준 2026.05.13

C#에서 WPF - Webview 셋팅

들어가며WPF 프로젝트에서 웹 콘텐츠를 보여줘야 할 때 가장 먼저 떠오르는 컨트롤이 WebBrowser지만, 오래된 IE 엔진을 기반으로 해서 최신 웹 기술(CSS3, JS ES6 등)을 제대로 지원하지 못한다.이 문제를 해결하기 위해 Microsoft Edge(Chromium) 기반의 WebView2 컨트롤이 등장했다.이번 글에서는 WPF 프로젝트에 WebView2를 설정하고, 기본적인 기능부터 배포 시 고려해야 할 점까지 정리한다.사용 스택 : Vite ( React + Typescript ), .NET 8개발 환경 준비WebView2를 사용하려면 다음 환경이 필요하다.NuGet 패키지: Microsoft.Web.WebView2.NET Framework 4.6.2 이상 또는 .NET 6/7 WPF 프..

C#/[WPF] Webview 2025.10.11

React Query 정리

React QueryReact Query를 실무에서 활용하기 위해 꼭 알아야 할 개념들을 정리한다.상태 관리, 캐싱 전략, staleTime과 cacheTime의 차이, 서버 캐싱과의 관계까지 모두 포함한다.1. 왜 React Query를 사용하는가기존 방식은 axios + useState + useEffect로 직접 요청과 상태를 관리해야 한다. 반면, React Query는 로딩, 에러, 캐싱, refetch 등을 자동으로 처리해준다.const { data, isLoading, error } = useQuery({ queryKey: ['tasks'], queryFn: () => axios.get('/api/tasks').then(res => res.data),})2. 핵심 개념 요약항목설명quer..

React & Typescript 2025.07.09

[해시테이블] LeetCode 242번 문제 학습

문제 설명Valid Anagram은 두 문자열 s와 t가 애너그램인지 확인하는 문제임. 애너그램은 문자 종류와 개수가 같아야 함.예를 들어, s = "anagram", t = "nagaram"이면 true, s = "rat", t = "car"면 false. 문자열 길이는 같아도 되고 달라도 됨.유니코드 문자 지원해야 함. 푼 과정처음엔 정렬 생각했지만 해시테이블(map)으로 풀었음. s와 t 길이 다르면 바로 false.map[rune]int로 s의 각 문자 개수 세고, t의 문자로 개수 줄임.줄이다가 음수면 t에 없는 문자가 s에 있거나 개수 안 맞는 거라 false. 끝까지 0이면 true. 알고리즘 분석해시테이블 썼음. s와 t 순회 각각 O(n), 맵 조작은 O(1). 총 시간 O(n), n은 ..

leetcode , 백준 2025.06.16