dev. (140) 썸네일형 리스트형 99클럽 코테 스터디 12일차 TIL + 백준 25757 (임스와 함께하는 미니게임, java) 오늘의 학습 키워드문자열비교HashSetenum문제 탐색하기문제 문제 풀이 설계하기이 문제는 HashSet을 활용하면 쉽게 풀 수 있는 문제였습니다. 이름이 set에 있는지를 검사하고 있으면 넘어가고 없으면 set에 넣어주며 게임을 함께 진행하도록 로직을 설계하면 됩니다. 게임의 이름, 게임을 함께 진행하는 인원수를 세팅하여 가독성을 높이고 반복적인 조건문을 사용하지 않기위해 enum 클래스를 사용하였습니다. 코드import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.HashSet;import java.util.Set;public class Main { private static enum GAME{ .. 99클럽 코테 스터디 11일차 TIL + LeetCode 187 (Repeated DNA Sequences, java) 오늘의 학습 키워드문자열HashMap문제 탐색하기문제문제 풀이 설계하기주어진 s 문자열을 길이가 10인 문자열로 잘라서 새로운 문자열을 만들었을 때, 그 문자열이 2번 이상 나올 경우 문자열들을 출력하면 되는 문제입니다. 따라서 주어진 s를 for문을 돌면서 길이가 10가 되도록 substring을 사용해서 잘라줬고 그 문자열을 hashmap에 저장해주었습니다. 문자열을 키로 그리고 mapOrDefault 메소드를 사용해서 key 값이 처음일 경우는 value가 1, key값이 존재할 경우는 value 에 + 1 해주면서 세팅해주었습니다. 코드class Solution { public List findRepeatedDnaSequences(String s) { HashMap map = n.. 99클럽 코테 스터디 10일차 TIL + 백준 2358 (평행선, java) 오늘의 학습 키워드HashMap문제 탐색하기문제 문제 풀이 설계하기x축 또는 y축에 평행한 직선이 몇 개 인지 구하는 문제입니다.여기서 같은 좌표가 여러번 주어진다해도 다른 점으로 간주해도 된다는 조건이 있습니다. 이것은 예를 들면 (1,1) (1,1) 의 점이 주어진다면 x값이 동일하므로 y축에 평행한 직선 1개, y값이 동일하므로 x축에 평행한 직선1개 이렇게 2개의 직선이 카운팅 된다는 뜻입니다. 즉 x값이 동일한 데이터가 들어오면 직선 1개로 생각하며 카운트를 1개씩 올려주면 됩니다.이는 HashMap을 사용해서 key 값이 동일할때 value를 +1씩 해주도록 로직을 작성하면 됩니다. 코드import java.io.BufferedReader;import java.io.IOException;imp.. 99클럽 코테 스터디 9일차 TIL + 동시성이슈 오늘의 키워드동시성 이슈 (Concurrency Issue) 동시성 이슈란? 여러 개의 스레드 또는 프로세스가 공유 자원 (Shared Resource)에 동시에 접근하려고 할 때 발생하는 예기치 않은 문제들을 의미합니다. 공유 자원은 메모리, 파일, 데이터베이스 연결 등이 될 수 있습니다. 동시성 이슈 발생 이유 여러 스레드가 동시에 실행될 때, 각 스레드의 실행 순서는 운영체제의 스케줄링에 따라 예측하기 어렵습니다. 따라서 공유 자원에 대한 접근 순서가 매번 달라질 수 있으며, 이로 인해 프로그램의 결과가 예상과 다르게 나타나는 상황이 발생할 수 있습니다. 동시성 이슈 해결 방법: 동기화 (Synchronization)동시성 이슈를 해결하는 가장 일반적인 방법은 동기화 (Synchronization).. 99클럽 코테 스터디 8일차 TIL + LeetCode 2283 (Check if Number Has Equal Digit Count and Digit Value, java) 오늘의 학습 키워드문자열HashMap반복문문제 탐색하기문제문제 풀이 설계하기문자열의 길이만큼 반복을 하였을 때 각 인덱스의 숫자가 문자열 내에 몇개 존재하는 지가 문자열의 인덱스 위치의 문자와 같으면 true이고 인덱스의 숫자가 문자열 내에 존재하는 수치와 다르다면 false를 리턴해주면 되는 문제입니다. 예시 문제를 통해 설명을 하자면== 1번째 예제 ==String str = "1210"index 0 : 0은 str안에 1개 존재하므로 str.charAt(0)-'0' : 1 과 동일index 1 : 1은 str안에 2개 존재하므로 str.charAt(1)-'0' : 2 와 동일index 2 : 2는 str안에 1개 존재하므로 str.charAt(2)-'0' : 1 과 동일index 3 : 3은 str.. 99클럽 코테 스터디 7일차 TIL + JNI (Java Native Interface) 오늘의 키워드JNI (Java Native Interface)JNI의 개념 및 활용 예제자바와 C/C++ 같은 네이티브 언어를 연결해주는 JNI (Java Native Interface) 에 대해 정리해보겠습니다.JNI는 말 그대로 자바 코드에서 네이티브 라이브러리를 호출하거나, 반대로 네이티브 코드에서 자바 메서드를 호출할 수 있게 해주는 인터페이스입니다.보통 성능이 중요한 연산을 네이티브로 처리하거나, 운영체제에 특화된 기능을 자바에서 활용하고 싶을 때 사용합니다.최근에 jni를 접하게된 계기는 회사 선배님이 자바 프로세스 간에 소켓 fd를 전달하는 코드를 구현하고 계셔서 알게 되었습니다. 이를 통해 jni를 활용해서 파일 디스크립터 전달, 성능 개선, 시스템 콜 연동 등 여러 상황에서 사용할 수 있.. 99클럽 코테 스터디 6일차 TIL + LeetCode 70 (Climbing Stairs, java) 오늘의 학습 키워드피보나치 수열다이나믹 프로그래밍 (DP)문제 탐색하기문제문제 풀이 설계하기예시를 들어서 설명하면 n을 5라고 했을 때 5가 될 수 있는 경우의 수는 연산에는 1또는 2만 사용할 수 있으므로4가 될 수 있는 경우의 수에서 + 1을 하는 것과 3이 될 수 있는 경우의 수에서 +2를 하면 됩니다.f(n) = f(n-2) + f(n-1) 따라서 위와 같은 식이 성립이 되는데 이를 풀기 위해서 반복문을 통해 각 수가 될 수 있는 경우의 수를 계속 구해주면 됩니다. 코드class Solution { public int climbStairs(int n) { int[] nArr = new int[46]; nArr[1] = 1; nArr[2] = 2; .. 99클럽 코테 스터디 5일차 TIL + LeetCode 225 (Implement Stack using Queues, java) 오늘의 학습 키워드큐스택문제 탐색하기문제 문제 풀이 설계하기이 문제를 풀기 위해서는 큐와 스택의 개념을 이해하고 있어야합니다. Queue 란?선입 선출을 기반으로 동작하는 자료 구조 이고 즉, 먼저 들어간 원소가 제일 먼저 나오는 구조입니다. Stack 이란?후입 선출을 기반으로 동작하는 자료 구조 이며 즉, 나중에 들어간 원소가 제일 먼저 나오는 구조입니다. 코드class MyStack{ Queue q1; Queue q2; public MyStack() { q1=new LinkedList(); q2=new LinkedList(); } public void push(int x) { if(q1.isEmpty()) { q1.add(x).. 이전 1 2 3 4 5 ··· 18 다음