본문 바로가기

전체 글

(445)
[알고리즘] 선택 정렬 SelectionSort 정렬 알고리즘이란?정렬 알고리즘은 배열의 원소들을 조건에 맞게 순서대로 정렬하는 알고리즘입니다. 원소들이 어떤 순서로 들어오는지에 따라 적절한 정렬 알고리즘을 선택할 수 있습니다.선택 기준시간 복잡도: 알고리즘이 실행되는 데 소요되는 시간공간 복잡도: 알고리즘이 사용하는 메모리의 양안전성 (Stability): 동일한 값의 원소들의 순서가 유지되는지 여부정렬 알고리즘 종류와 시간 복잡도정렬 알고리즘 종류최선 시간 복잡도평균 시간 복잡도최악 시간 복잡도BubbleSort (버블 정렬)O(n)O(n^2)O(n^2)SelectionSort (선택 정렬)O(n^2)O(n^2)O(n^2)InsertionSort (삽입 정렬)O(n)O(n^2)O(n^2)MergeSort (병합 정렬)O(n log n)O(n log..
[Spring Boot] Api Error Code 만들기 보호되어 있는 글입니다.
[프로그래머스] 최빈값 구하기 코드 힌트HashMap 사용하기HashMap은 키-값 쌍으로 데이터를 저장하는 자료구조입니다. 각 키는 유일해야 하며, 값을 저장할 수 있습니다. 빠른 조회가 가능하여 데이터 접근 속도가 빠릅니다.getOrDefault로 카운트하기getOrDefault를 사용하여, 해당 키가 없을 경우 기본값으로 0을 설정합니다.map.getOrDefault(n, 0)은 n의 값이 없을 때 0을 반환합니다.map.keySet() 사용하기map.keySet()은 HashMap의 모든 키를 반환하는 메서드입니다.이 키들을 리스트로 변환하여 사용할 수 있습니다.keySet.sort()하기keySet.sort((o1, o2) -> map.get(o2).compareTo(map.get(o1))) 사용값의 크기를 기준으로 내림차순..
[프로그래머스] 합성수 찾기 코드 힌트4부터 n까지의 숫자에 대해 반복문을 실행합니다.4부터 시작하는 이유: 1은 약수가 없고, 2와 3은 약수가 2개뿐이기 때문에 합성수 조건에 맞지 않습니다.만약 n이 1부터 3 사이의 값이라면, 자연스럽게 반복문이 실행되지 않아 0을 반환하게 됩니다.각 숫자 i에 대해 2부터 i-1까지의 숫자로 나누어 나머지가 0인 경우를 찾습니다.1과 i는 이미 해당 수의 약수이므로 확인할 필요가 없습니다. 정답은 더보기 클릭더보기class Solution { public int solution(int n) { int result = 0; // 합성수의 개수를 저장할 변수 초기화 // 4부터 n까지의 숫자에 대해 반복문을 실행합니다. for (int i..
[프로그래머스] 대충 만든 자판 코드 힌트targets 배열에서 각 target 문자열을 하나씩 추출합니다.for 루프를 사용하여 targets 배열의 각 요소에 접근합니다.각 target 문자열에서 문자를 하나씩 추출합니다.toCharArray() 메소드를 사용하여 문자열을 문자 배열로 변환하고, for-each 루프를 사용하여 각 문자에 접근합니다.keymap 배열에 있는 문자열에 대해 indexOf()를 사용하여 최소 위치를 구합니다.각 keymap 문자열에 대해 indexOf() 메소드를 사용하여 문자의 위치를 찾습니다.찾은 위치 중 최소값을 저장합니다.keymap을 모두 방문했을 때 target 문자열을 완성할 수 없다면 -1을 저장합니다.만약 문자를 keymap에서 찾을 수 없으면 결과 배열에 -1을 저장합니다. 정답은 더보..
[프로그래머스] 외계행성의 나이 코드힌트숫자 0-9를 알파벳 a-j로 매핑하는 문제입니다.숫자 0은 알파벳 a, 숫자 1은 알파벳 b, ..., 숫자 9는 알파벳 j로 변환됩니다.알파벳 문자열을 변수로 만들어 사용합니다."abcdefghij" 문자열을 생성하여 각 자리 숫자를 해당 알파벳으로 변환합니다.나이의 각 자리 숫자를 추출하여 charAt() 메소드를 사용해 알파벳으로 매핑합니다. 정답은 더보기 클릭더보기class Solution { public String solution(int age) { // 숫자 0-9를 알파벳 a-j로 변환하기 위한 문자열 정의 String alpha = "abcdefghij"; // 변환된 결과를 저장할 StringBuilder 객체 생성 ..
[프로그래머스] 9로 나눈 나머지 코드 힌트문자열로 저장된 숫자의 각 자리수의 합을 구하고 % 9를 구하는 문제입니다.주어진 숫자를 문자열로 받아 각 자리 숫자의 합을 구하고, 그 합을 9로 나눈 나머지를 반환합니다.각 자리수를 구하기 위해서는 for문을 돌아 charAt()으로 하나씩 추출하거나 forEach를 활용하여 toCharArray()를 사용하여 문자를 추출합니다.문자열의 각 문자를 순회하면서 해당 문자를 숫자로 변환하여 합산합니다.이를 위해 toCharArray() 메서드를 사용하여 문자열을 문자 배열로 변환하고, for-each 루프를 사용합니다.char타입으로 출력된 문자를 그대로 숫자로 저장하기 위해서는 char - '0'을 사용하는 것이 좋습니다.'0'을 빼는 이유: char 타입은 아스키 코드값으로 저장됩니다. 예를..
[백준] 최대공약수 1850번 코드 힌트Buffered 사용하여 받고 출력하기BufferedReader와 BufferedWriter를 사용하여 입력과 출력을 처리합니다.BufferedReader는 입력을 받고, BufferedWriter는 출력을 담당합니다.(Java) 숫자로 변환할 때 long타입으로 받아야합니다.최대공약수 구하기유클리드 호제법을 사용하여 두 수의 최대공약수를 구합니다.유클리드 호제법은 반복적으로 나머지를 구하여 최대공약수를 찾는 방법입니다.최대공약수 구하는 방법은 여기를 클릭하세요"1"를 최대공약수 만큼 출력시키기구한 최대공약수의 값만큼 '1'을 출력합니다.예를 들어, 최대공약수가 5이면 '1'을 5번 출력합니다.  정답은 더보기 클릭더보기import java.io.*;public class Main { ..