코테 9

99클럽 코테 스터디 15일차 TIL + Leetcode 187. Repeated DNA Sequences

오늘의 학습 키워드자바 문자열 처리Sliding Window 알고리즘HashSet을 활용한 중복 데이터 처리 [ Leetcode 187. Repeated DNA Sequences ]문제 요약DNA 서열 문자열이 주어졌을 때,길이가 10인 부분 문자열 중 두 번 이상 등장하는 문자열을 찾는 문제 해결 방법문자열을 길이 10 윈도우로 잘라가며 탐색중복 체크를 위해 HashSet 사용처음 등장한 문자열은 seen Set에 저장두 번째 등장한 문자열은 result Set에 저장알고리즘 동작 방식HashSet : 중복 여부 체크 Java 코드 구현 class Solution { public List findRepeatedDnaSequences(String s) { int L = 10; //..

코테 2025.04.14

99클럽 코테 스터디 11일차 TIL + 706. Design HashMap

오늘의 학습 키워드자바 HashMap 자료구조Key-Value 구조 데이터 처리직접 구현을 통한 자료구조 원리 이해[706. Design HashMap]문제 요약HashMap 자료구조를 직접 구현해보는 문제 해결 방법"가변적인 ArrayList"를 사용해서 HashMap 함수를 직접 구현고정 배열이 아닌 ArrayList 활용알고리즘 동작 방식put(key, value)기존 key가 있는지 탐색있으면 value 덮어쓰기없으면 새로 추가get(key)key를 찾아서 value 리턴없으면 -1remove(key)key를 찾아서 삭제Java 코드 구현public class MyHashMap { ArrayList> map; public MyHashMap() { map = new Array..

코테 2025.04.10

99클럽 코테 스터디 10일차 TIL + [LeetCode 2283번] Check if Number Has Equal ...

오늘의 학습 키워드문자열 처리배열을 활용한 빈도 계산[LeetCode 2283. Check if Number Has Equal Digit Count and Digit Value 문제]문제 요약각 인덱스 i에 있는 숫자는 문자열 전체에서 숫자 i가 등장한 횟수여야 한다.이 조건이 모든 인덱스에서 만족하면 true, 아니면 false를 리턴한다.해결 방법각 숫자가 몇 번 등장했는지를 세는 배열을 하나 만든다.문자열 num을 순회하면서 등장 횟수를 카운트.다시 한 번 num을 돌면서, i번째 문자의 숫자 값과 i가 등장한 횟수를 비교한다.하나라도 불일치하면 false, 전부 맞으면 true.핵심 포인트문자열 안의 숫자를 단순한 문자로 보지 않고, 조건이 되는 기준값으로 해석해야 한다.Java 코드 (문자열 +..

코테 2025.04.09

99클럽 코테 스터디 9일차 TIL + 백준 3986

오늘의 학습 키워드스택을 활용한 문자열 처리 알고리즘괄호 짝맞추기와 유사한 패턴 매칭[백준 3986 좋은 단어 문제]문제 요약A와 B로만 이루어진 단어가 주어질 때, '좋은 단어'의 개수를 찾는 문제'좋은 단어'란 같은 글자끼리(A는 A끼리, B는 B끼리) 짝을 지었을 때, 선끼리 교차하지 않으면서 모든 글자가 정확히 하나의 짝을 가질 수 있는 단어해결 방법문제 해결의 핵심은 스택을 활용하여 교차하지 않는 짝 맞추기를 구현알고리즘:문자열을 왼쪽에서 오른쪽으로 순회스택이 비어있거나 현재 문자와 스택 최상단 문자가 다르면 스택에 추가스택 최상단 문자와 현재 문자가 같으면 스택에서 제거 (짝을 이룸)모든 문자를 처리한 후 스택이 비어있으면 '좋은 단어'로 카운트Java 코드 구현import java.util...

코테 2025.04.08

99클럽 코테 스터디 8일차 TIL + [LeetCode 70번] Climbing Stairs

오늘의 학습 키워드동적 프로그래밍(Dynamic Programming)피보나치 수열 패턴[LeetCode 70. Climbing Stairs 문제]문제 요약n개의 계단을 오르는 방법을 구하는 문제한 번에 1계단 또는 2계단씩 오를 수 있음꼭대기까지 오르는 서로 다른 방법의 총 개수를 구해야 함해결 방법핵심은 이 문제가 피보나치 수열의 패턴을 따른다는 점을 인식하는 것이고.n번째 계단에 도달하는 방법의 수는 (n-1)번째 계단과 (n-2)번째 계단에 도달하는 방법의 수의 합과 같다.알고리즘:기본 케이스: 1계단은 1가지 방법, 2계단은 2가지 방법result = n-1 + n-2n에 대한 답을 구할 때까지 계산Java 코드 구현 (반복문 사용)class Solution { public int clim..

코테 2025.04.07

99클럽 코테 스터디 4일차 TIL + [LeetCode 232번] Implement Queue using Stacks

오늘의 학습 키워드스택, 큐자바로 큐 구현LeetCode 232번] Implement Queue using Stacks문제 요약오직 2개의 스택만을 이용해서 큐를 구현하라push, pop, peek, empty 함수를 구현해결 방법 두 개의 스택:inputStack: 새로운 원소가 들어오는 스택outputStack: 원소가 나가는 스택push(x) 메소드:새로운 원소를 항상 inputStack 넣음pop()과 peek() 메소드:outputStack이 비어있으면, inputStack의 모든 원소를 꺼내서 outputStack에 넣음. (이 과정에서 원소들의 순서가 뒤집히게 되면서  마지막이 처음으로 오게됨그 후 outputStack의 맨 위 원소를 반환empty() 메소드:두 스택이 모두 비어있으면 큐도..

코테 2025.04.03

99클럽 코테 스터디 3일차 TIL + 백준 31458

오늘의 학습 키워드문제 분석기능 나누기[백준 31458 !!초콜릿중독주의!!]문제 요약한 줄에 개수한 줄에 수식개수만큼 반복해서 한 줄 수식을 계산한다.해결 방법팩토리얼과 논리반전을 구분하여 반복해서! 를 줄여나간다. 알고리즘:수식을 입력받는다.(숫자!) 또는(! 숫자) 인 패턴을 찾는다.해당패턴을을계산하여 리턴하는 함수를 통해 결괏값을 반복적용한다.Java 코드 구현import java.util.Scanner;import java.util.regex.Matcher;import java.util.regex.Pattern;public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.i..

코테 2025.04.02

99클럽 코테 스터디 2일차 TIL + 백준 10820

오늘의 학습 키워드문자열 비교 분석 ,숫자체크[백준 10820 문자열 비교 문제]문제 요약여러 개의 문자열이 주어졌을 때 소문자, 대문자, 숫자, 공백을 구분 후 각각 개수를 구하는 문제 해결 방법문제 해결의 핵심은 문자열을 하나씩 구분하여 갯수를 증가시키면 되는 것입니다. 알고리즘:문자열을 입력받음각각 구분 조건에 적용조건에 해당하는 값을 카운트Java 코드 구현import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;public class Main { public static void main(String[] args) { BufferedReader buffer = new Buff..

코테 2025.04.01

99클럽 코테 스터디 1일차 TIL + 백준 1032

오늘의 학습 키워드파일 패턴 매칭 알고리즘문자열 비교와 패턴 생성[백준 1032 명령프롬프트 문제]문제 요약여러 개의 파일 이름이 주어졌을 때, 이 파일들을 모두 검색할 수 있는 패턴을 찾는 문제패턴에는 알파벳, '.', '?'만 사용 가능하며, '?'는 아무 문자나 매칭됨가능한 '?'를 적게 사용해야 함해결 방법문제 해결의 핵심은 모든 파일 이름을 비교하여 같은 위치에 모두 같은 문자가 있으면 그 문자를 사용하고, 하나라도 다른 문자가 있으면 '?'로 대체하는 것이었습니다.알고리즘:첫 번째 파일 이름을 기준으로 삼음나머지 모든 파일과 각 위치별로 문자 비교같은 위치에 모든 파일이 같은 문자를 가지고 있으면 그 문자 사용하나라도 다른 문자가 있으면 '?' 사용Java 코드 구현import java.uti..

코테 2025.03.31