React, JavaScript 및 기술에 대한 지식 기사 페이지인 소프트웨어 기술 블로그에 오신 것을 환영합니다. monorepo에 대한 기술, zustand에 대한 상태 관리 팁을 찾고 있거나 프런트엔드 개발에 대한 이해를 높이고 싶다면 여기에 풍부한 리소스가 있습니다. 각 기사는 모든 사람이 필요한 정보를 빠르게 찾을 수 있도록 명확하고 이해하기 쉬운 콘텐츠를 제공하기 위해 신중하게 작성되었습니다. 기본 개념부터 고급 기술까지, 초보자부터 고급 플레이어까지 누구나 즐길 수 있는 콘텐츠가 있습니다.그래픽 콘텐츠에 관심이 있으시면 저희에게 문의해 주세요. 인스 타 그램.
🤖 AI 직원을 써보실래요? Google Gemini가 출연하는 인턴십 경험
중소기업이 사업을 확장하기 시작할 때, 가장 먼저 직면하는 문제는 대개 시장이나 제품이 아니라 인력 부족입니다. 오늘 당신이 이 회사의 책임자라고 상상해보세요. 고객에게 답변하고, 카피를 쓰고, 고객 리뷰를 처리하는 등 세 가지 업무를 동시에 수행해야 할 수도 있습니다.
그리고 이러한 지루하지만 중요한 작업의 한가운데서 여러분은 업무 수행 방식을 바꿀 수 있는 새로운 도우미에 대해 듣게 됩니다. 바로 인공 지능, 더 구체적으로 말하면 대규모 언어 모델(LLM)입니다.
[Leetcode] 1804. Trie II 구현
트라이(trie, "트라이"로 발음) 또는 접두사 트리는 문자열 데이터 세트에서 키를 효율적으로 저장하고 검색하는 데 사용되는 트리 데이터 구조입니다. 이 데이터 구조는 자동완성이나 맞춤법 검사기 등 다양한 용도로 사용됩니다.
Trie 클래스를 구현합니다.
Trie()는 trie 객체를 초기화합니다.
void insert(String word) 문자열 word를 트라이에 삽입합니다.
int countWordsEqualTo(String word) 트라이에서 문자열 word의 인스턴스 수를 반환합니다.
int countWordsStartingWith(String prefix) 문자열 접두사를 접두사로 갖는 트라이의 문자열 개수를 반환합니다.
void erase(String word) 트라이에서 문자열 word를 지웁니다.
[LeetCode] 0020. 유효한 괄호
'(', ')', '{', '}', '[', ']' 문자만 포함된 문자열이 주어졌을 때 입력 문자열이 유효한지 판별합니다.
입력 문자열은 다음과 같은 경우 유효합니다.
열린 괄호는 같은 유형의 괄호로 닫아야 합니다.
열린 괄호는 올바른 순서로 닫아야 합니다.
모든 닫힌 괄호에는 같은 유형의 열린 괄호가 대응됩니다.
AI가 사람보다 더 빨리 프로그램을 작성할 수 있다면 엔지니어는 어떻게 새로운 직업을 찾을 수 있을까?
이런 상황을 상상해보세요. 컴퓨터 앞에 앉아 생각하고 있는 기능을 설명하세요. 몇 초 후에 인공지능이 실행 가능한 코드를 생성하거나, 심지어 전체 애플리케이션이 생성될 수도 있습니다. 좀 마법같은 이야기 같나요?
이런 시나리오는 더 이상 환상이 아니라, 지금 일어나고 있는 현실입니다. 최근 몇 년 동안 AI 코딩 기술은 급속히 발전하여 기술 뉴스의 새로운 주제에서 일상적인 개발 작업에 중요한 도구로 점차 바뀌고 있습니다. GitHub Copilot부터 DeepSeek R1까지, 인공지능은 프로그래밍 방식을 바꾸었을 뿐만 아니라, 전체 소프트웨어 산업의 개발 방향을 뒤집을 수도 있습니다.
그렇다면 AI 코딩 기술은 어느 정도까지 발전했을까? 엔지니어의 일자리를 대체하게 될까요? 기술 산업에 종사하는 사람으로서, 우리는 이러한 기술 발전의 흐름에 어떻게 대처해야 할까요? 이 글에서는 AI 코딩의 기원, 현재 상태, 실제 적용 분야, 산업에 미치는 영향, 미래 발전, 그리고 기술 산업 전문가들이 AI 코딩에 어떻게 대응해야 하는지에 대해 점차적으로 심층적으로 분석해 보겠습니다.
[Leetcode] 0212. 단어 검색 II
문자로 구성된 mxn 보드와 단어 문자열 목록이 주어졌을 때, 보드에 있는 모든 단어를 반환합니다.
각 단어는 연속적으로 인접한 셀의 문자로 구성되어야 하며, 인접한 셀은 수평 또는 수직으로 이웃해야 합니다. 동일한 문자 셀은 단어에서 두 번 이상 사용될 수 없습니다.
[Leetcode] 0211. 추가 및 검색어 데이터 구조 설계
새로운 단어를 추가하고 문자열이 이전에 추가된 문자열과 일치하는지 확인하는 데이터 구조를 설계합니다.
WordDictionary 클래스를 구현합니다.
WordDictionary() 객체를 초기화합니다.
void addWord(word) 데이터 구조에 단어를 추가합니다. 나중에 일치시킬 수 있습니다.
bool search(word) 데이터 구조에 word와 일치하는 문자열이 있으면 true를 반환하고, 그렇지 않으면 false를 반환합니다. 단어에는 점이 포함될 수 있습니다. 점은 모든 문자와 일치할 수 있습니다.
[Leetcode] 0208. Trie 구현
트라이(trie, "트라이"로 발음) 또는 접두사 트리는 문자열 데이터 세트에서 키를 효율적으로 저장하고 검색하는 데 사용되는 트리 데이터 구조입니다. 이 데이터 구조는 자동완성이나 맞춤법 검사기 등 다양한 용도로 사용됩니다.
Trie 클래스를 구현합니다.
Trie()는 trie 객체를 초기화합니다.
void insert(String word) 문자열 word를 트라이에 삽입합니다.
boolean search(문자열 단어) 문자열 단어가 트라이에 있는 경우(즉, 이전에 삽입된 경우) true를 반환하고, 그렇지 않은 경우 false를 반환합니다.
boolean startsWith(String prefix) 이전에 삽입된 문자열 단어에 접두사 prefix가 포함되어 있으면 true를 반환하고, 그렇지 않으면 false를 반환합니다.
[Leetcode] 0235. 이진 탐색 트리의 최소공배조상
이진 검색 트리(BST)가 주어졌을 때, BST에서 주어진 두 노드의 가장 낮은 공통 조상(LCA) 노드를 찾으세요.
위키피디아의 LCA 정의에 따르면 "최저 공통 조상은 두 노드 p와 q 사이에서 정의되며, p와 q를 모두 자손으로 갖는 T의 가장 낮은 노드로 정의됩니다(여기서 노드는 자기 자신의 자손이 될 수 있습니다)."
[Leetcode] 0230. BST의 K번째로 작은 요소
이진 검색 트리의 루트와 정수 k가 주어지면, 트리에 있는 모든 노드의 값 중 k번째로 작은 값(1부터 색인)을 반환합니다.
[Leetcode] 0098. 이진 탐색 트리 검증
이진 트리의 루트가 주어졌을 때, 그것이 유효한 이진 검색 트리(BST)인지 판별해보세요.
유효한 BST는 다음과 같이 정의됩니다.
노드의 왼쪽 서브 트리에는 해당 노드의 키보다 작은 키를 가진 노드만 포함됩니다.
노드의 오른쪽 서브 트리에는 노드의 키보다 큰 키를 가진 노드만 포함됩니다.
왼쪽과 오른쪽 서브트리도 모두 이진 검색 트리여야 합니다.
[Leetcode] 0105. 전위순회와 중위순회를 통한 이진트리 구성
이진 트리의 전위 순회인 전위 순회와 같은 트리의 중위 순회인 중위 순회라는 두 개의 정수 배열인 전위 순회와 중위 순회가 주어지면, 이진 트리를 구성하여 반환합니다.
[Leetcode] 0572. 다른 트리의 서브 트리
두 개의 이진 트리 root와 subRoot의 루트가 주어졌을 때, root의 서브 트리 중 subRoot와 같은 구조와 노드 값을 갖는 서브 트리가 있으면 true를 반환하고, 그렇지 않으면 false를 반환합니다.
이진 트리의 서브 트리는 트리의 노드와 이 노드의 모든 자손으로 구성된 트리입니다. 트리 트리는 그 자체의 서브트리로 간주될 수도 있습니다.
[Leetcode] 0297. 이진 트리 직렬화 및 역직렬화
직렬화는 데이터 구조나 객체를 비트 시퀀스로 변환하여 파일이나 메모리 버퍼에 저장하거나 네트워크 연결을 통해 전송하여 나중에 같은 컴퓨터 환경이나 다른 컴퓨터 환경에서 재구성할 수 있는 프로세스입니다.
이진 트리를 직렬화하고 역직렬화하는 알고리즘을 설계합니다. 직렬화/역직렬화 알고리즘이 작동하는 방법에는 제한이 없습니다. 이진 트리를 문자열로 직렬화할 수 있고, 이 문자열을 원래 트리 구조로 역직렬화할 수 있는지 확인하기만 하면 됩니다.
설명: 입출력 형식은 LeetCode가 이진 트리를 직렬화하는 방식과 동일합니다. 반드시 이 형식을 따를 필요는 없으므로 창의력을 발휘하여 직접 다양한 접근 방식을 생각해 보세요.
미국 반도체 전략의 큰 변화! TSMC의 1,650억 달러 투자는 칩 시장을 어떻게 바꿀까?
대만 반도체 제조회사(TSMC)는 최근 미국에 세 번째 웨이퍼 공장을 설립하고, 애리조나에 첨단 패키징 공장과 R&D 센터를 건설하는 데 1,650억 달러를 투자할 계획이라고 발표했습니다. 이 대규모 투자는 TSMC의 사업 확장 전략의 일부일 뿐만 아니라, 국제 정책 및 경제 개발과도 밀접한 관련이 있습니다.
이번 투자는 글로벌 칩 시장에 어떤 영향을 미칠까? TSMC가 미국에 대한 투자를 늘리는 데에는 어떤 장단점이 있습니까? 이는 대만의 경제와 지역 안보에 어떤 영향을 미칠 것인가? 오늘은 이 중요한 결정을 심층적으로 분석하고, 이 전략이 기술 산업에 어떤 변화를 가져올지 이야기해보겠습니다!
[Leetcode] 0102. 이진 트리 레벨 순서 탐색
이진 트리의 루트가 주어지면, 노드 값의 수준 순서 순회를 반환합니다. (즉, 왼쪽에서 오른쪽으로, 수준별로).
[Leetcode] 0124. 이진 트리 최대 경로 합
이진 트리의 경로는 노드의 시퀀스이며, 시퀀스에서 인접한 노드의 각 쌍은 그들을 연결하는 간선을 갖습니다. 노드는 시퀀스에서 최대 한 번만 나타날 수 있습니다. 경로가 루트를 통과할 필요는 없습니다.
경로의 경로 합은 경로에 있는 노드 값의 합입니다.
이진 트리의 루트가 주어지면 비어 있지 않은 모든 경로의 최대 경로 합계를 반환합니다.
[Leetcode] 0951. 등가 이진 트리 뒤집기
이진 트리 T에 대해 다음과 같이 플립 연산을 정의할 수 있습니다. 아무 노드나 선택하고 왼쪽과 오른쪽 자식 서브 트리를 바꿉니다.
이진 트리 X가 이진 트리 Y와 플립 동치인 것은 몇 번의 플립 연산을 거친 후 X를 Y와 같게 만들 수 있는 경우에만 가능합니다.
두 이진 트리 root1과 root2의 루트가 주어졌을 때, 두 트리가 뒤집혀 동치이면 true를 반환하고 그렇지 않으면 false를 반환합니다.
[Leetcode] 0100. 같은 나무
두 이진 트리 p와 q의 근이 주어졌을 때, 두 근이 같은지 확인하는 함수를 작성하세요.
두 개의 이진 트리는 구조적으로 동일하고 노드의 값이 같으면 동일한 것으로 간주됩니다.
[Leetcode] 0271. 문자열 인코딩 및 디코딩
문자열 목록을 문자열로 인코딩하는 알고리즘을 설계하세요. 인코딩된 문자열은 네트워크를 통해 전송되고 디코딩되어 원래 문자열 목록으로 다시 반환됩니다.
[Leetcode] 0647. 회문 부분 문자열
문자열 s가 주어지면, 해당 문자열에 있는 팰린드롬 부분 문자열의 개수를 반환합니다.
문자열은 앞으로 읽든 뒤로 읽든 같을 때 팰린드롬입니다.
부분 문자열은 문자열 내에서 연속된 문자 시퀀스입니다.