목록전체 글 (60)
꾸준히 기록하자
https://school.programmers.co.kr/learn/courses/30/lessons/12948문제 설명더보기프로그래머스 모바일은 개인정보 보호를 위해 고지서를 보낼 때 고객들의 전화번호의 일부를 가립니다. 전화번호가 문자열 phone_number로 주어졌을 때, 전화번호의 뒷 4자리를 제외한 나머지 숫자를 전부 *으로 가린 문자열을 리턴하는 함수, solution을 완성해 주세요. 내가 푼 방식phone_number를 char[] temp에 변환해 저장반복문(for)에서 i 값이 마지막 4자리 전까지는 '*'을 answer에 추가하고 마지막 4자리 부분은 원래 전화번호의 문자를 추가내가 푼 코드class Solution { public String solution(String p..
https://school.programmers.co.kr/learn/courses/30/lessons/12931?language=java문제 설명 더보기자연수 N이 주어지면, N의 각 자릿수의 합을 구해서 return 하는 solution 함수를 만들어주세요.예를 들어 N = 123이면, 1 + 2 + 3 = 6을 return 하면 됩니다. 내가 푼 방식int를 String으로 형변환 후 toCharArray() 메서드를 활용하여 char[] 배열에 담기반복문(for)을 통해 answer에 값 더해주기 char 타입의 문자 '1'을 int 타입의 숫자 1로 변환하려면 ASCII값을 이용하여 변환하기 '1'의 ASCII 값은 49이고, '0'의 ASCII 값은 48입니다. 따라서 '1'-'0'은 1이 입..
삽입 정렬(Insertion Sort)은 정렬 알고리즘 중 하나로, 배열을 정렬된 부분과 정렬되지 않은 부분으로 나누어 처리합니다.배열의 요소를 하나씩 꺼내서 이미 정렬된 부분에서 적절한 위치에 삽입하는 방식으로 동작합니다. 삽입 정렬의 동작 과정입니다.배열의 첫 번째 요소는 이미 정렬된 상태로 간주합니다.두 번째 요소부터 순차적으로 선택해, 그 요소가 정렬된 부분에서 올바른 위치에 삽입될 때까지 이전 요소들과 비교합니다.이 과정을 배열의 마지막 요소까지 반복합니다.삽입 정렬의 시간 복잡도는 최악의 경우(내림차순으로 정렬된 배열) O(n^2)이고, 최선의 경우(이미 정렬된 배열) O(n)입니다. 자바 예제 코드import java.util.Arrays;public class InsertionSortExa..
선택 정렬(Selection Sort)은 간단한 정렬 알고리즘 중 하나로, 주어진 리스트에서 매번 가장 작은(혹은 가장 큰) 요소를 찾아 그것을 리스트의 맨 앞(혹은 맨 뒤)으로 옮기는 작업을 반복하는 방식입니다. 시간 복잡도는 O(n2)로, 정렬해야 할 항목이 많을 경우 비효율적이지만, 구현이 매우 간단합니다. 선택 정렬의 동작 과정입니다.주어진 리스트에서 가장 작은 값을 찾아 첫 번째 위치에 있는 값과 교환합니다.두 번째 위치부터 끝까지 중에서 다시 가장 작은 값을 찾아 두 번째 위치에 있는 값과 교환합니다.이를 마지막 요소까지 반복합니다.public class SelectionSort { public static void selectionSort(int[] arr) { int n ..
동시성 제어(Concurrency Control)여러 프로세스나 스레드가 동시에 동일한 자원에 접근할 때 발생할 수 있는 충돌이나 데이터 일관성 문제를 방지하기 위한 기법이다.다수의 스레드가 한 자원(변수, 데이터베이스, 파일 등)에 동시 접근하면 예상치 못한 결과가 발생할 수 있다.스프링에서 동시성 제어 방법ReentrantLock은 자바의 Lock 인터페이스를 구현한 클래스 중 하나로 동시성 제어할 수 있는 도구이다.주요 특징1. 재진입 가능( Reentrant)동일한 스레드가 여러 번 연속해서 lock을 획득할 수 있는 기능을 제공한다. 예를 들어, 한 스레드가 이미 lock를 가지고 있을 때, 스레드가 같은 lock을 다시 요청해도 블로킹되지 않고 바로 접근할 수 있다.2. 공정성 설정 가능 (F..
아래 내용은 망나니개발자님의 블로그 내용을 공부하면서 정리한 내용입니다.https://mangkyu.tistory.com/143 [TDD] 단위 테스트(Unit Test) 작성의 필요성 (1/3)1. 단위 테스트 vs 통합 테스트 차이 [ 단위 테스트(Unit Test) ] 단위 테스트(Unit Test)는 하나의 모듈을 기준으로 독립적으로 진행되는 가장 작은 단위의 테스트이다. 여기서 모듈은 애플리케이션에mangkyu.tistory.com단위 테스트(Unit Test)하나의 모듈을 기준으로 독립적으로 진행되는 가장 작은 단위의 테스트이며, 모듈은 애플리케이션에서 작동하는 하나의 기능 또는 메서드로 이해할 수 있다. "어떤 기능이 실행되면 어떤 결과가 나온다" 정도로 테스트를 진행하다. 통합 테스트(In..
아래 내용은 망나니개발자님의 블로그 내용을 공부하며 작성한 정리글입니다.https://mangkyu.tistory.com/182 [TDD] 단위 테스트와 TDD(테스트 주도 개발) 프로그래밍 방법 소개 - (1/5)이번에는 여러 개발 서적들 및 실무 경험 그리고 시행 착오 등을 겪으면서 얻은 테스트 주도 개발 방법에 대해 소개해보고자 합니다. 이번 포스팅에서는 먼저 단위 테스트와 중요성 그리고 단위mangkyu.tistory.com단위 테스트(Unit Test)를 작성해야 하는 이유코드를 수정하거나 기능을 추가할 때 수시로 빠르게 검증할 수 있다.리팩토링 시에 안정성을 확보할 수 있다.개발 및 테스팅에 대한 시간과 비용을 절감할 수 있다.비용이 크다라는 말은 통합 테스트를 위해 캐시, 데이터베이스 등 외..
버블 정렬(Bubble Sort)은 매우 간단한 정렬 알고리즘 중 하나입니다.버블 정렬은 인접한 두 요소를 비교하여 잘못된 순서로 되어 있으면 그 둘을 교환하는 방식으로 동작합니다.이 과정이 배열이 정렬될 때까지 반복합니다. 장점과 단점장점: 구현이 매우 간단하고 코드가 직관적이다.단점: 평균 및 최악의 경우 시간 복잡도가 O(n²)으로, 큰 데이터 집합을 다룰 때 비효율적이다.public class BubbleSortExample { public static void bubbleSort(int[] arr) { int n = arr.length; boolean swapped; for (int i = 0; i arr[j + 1]) { ..