배열의 길이가 N일 경우, 버블 정렬은 N-1의 요소를 비교해야 한다. 최악의 경우 모든 요소들의 위치를 변경해야 하기 때문에 효율적인 정렬 알고리즘이 아니다. ⏰ 시간 복잡도 : O(n^2)정렬되지 않은 배열에서 가장 작은 수를 가진 요소를 찾아야 하기 때문에 배열의
피보나치는 재귀함수를 사용하면 쉽게 해결할 수 있다. 다만 재귀함수를 사용할 경우의 시간 복잡도는 O(2^N)로 숫자가 커질수록 비효율적이라는 단점을 가진다. 위 그림을 보면 같은 수에 대한 계산을 이미 진행했음에도 다음 수를 위해 반복적으로 계산하게 된다. 동적계획법
처음에는 depue로 해결을 할 수 있을거라 생각했는데, 처음과 끝뿐만 아니라 중간에 도 값을 낑겨 넣어야 한다는 것을 깨닫고는 멘붕에 빠졌다.또한, 숫자인 age와 문자열인 name을 어떻게 구분하여 정렬해야 하는지 전혀 감이 잡히지 않았다.그러다 배열은 기본형 타입
💡 소수란, 1과 자기 자신으로만 나눠지는 수(0, 1은 제외)입력 받은 N+1의 크기만큼의 배열을 선언한다.🤔배열의 크기를 N이 아닌 N+1만큼 하는 이유. 배열의 인덱스는 0부터 시작하므로 인덱스의 수와, 실제 소수인지 판별할 수를 일치시키기 위해 +1를 해준다
1부터 N까지 정해진 순서대로 나열되어 있고, 순서대로 K번째 수를 만나면 해당 숫자를 나열 되어 있는 곳에서 제거한 후, 임의의 공간에 저장한다. 남아있는 숫자로 멈춘 지점부터 다시 K번째 수를 찾는다.Queue는 선입선출의 방식을 따르기 때문에 데이터의 순서를 보장
문제 알파벳 대문자로 이루어진 문자열을 입력받아 같은 문자가 연속으로 반복되는 경우 반복되는 문자 바로 오른쪽에 반복 횟수를 표기하는 방법으로 문자열을 압축하는 프로그램을 작성하시오. 단 반복횟수가 1인 경우 생략합니다. 입력값 첫 줄에 문자열이 주어진다. 문자열의
한 개의 문자열 str와 문자 c가 주어지면 문자열 s의 각 문자가 문자 c와 떨어진 최소거리를 출력하는 프로그램을 작성하세요.첫 번째 줄에 문자열 str와 문자 c가 주어진다. 문자열과 문자는 소문자로만 주어집니다.문자열의 길이는 100을 넘지 않는다.teacherm
문제 입력값 출력값 해결 방법 입력 받은 N의 길이를 가지는 문자열 배열 s을 선언한다. 반복문을 통해 다음 입력 받는 문자열들을 미리 선언한 s에 입력한다. Arrays.sort()를 통해 배열s을 정렬한다. 3-1. Arrays.sort()는 Comparat
소문자로 된 한개의 문자열이 입력되면 중복된 문자를 제거하고 출력하는 프로그램을 작성하세요.중복이 제거된 문자열의 각 문자는 원래 문자열의 순서를 유지합니다.문자열의 길이는 100을 넘지 않는다.String.indexOf(char)는 가장 먼저 위치한 문자의 인덱스 값
.....😵n!/(k!(n-k)!)팩토리얼은 n!으로 표현한다.n! = n \* (n-1) \* (n-2) \* ... \* 3 \* 2 \* 10! = 11! = 1Factorial 함수를 작성한다.Factorial 함수는 입력 받은 숫자num이0이거나 1일 경우
단어의 개수 n을 입력 받은 후, n만큼의 반복문을 돌려 문자열을 체크해 그룹 단어를 찾는다.문자열을 입력받고 그룹 단어임을 확인할 solution() 메서드를 생성한다.solution() 메서드는 알파벳의 개수만큼의 boolean 배열을 선언해 문자열을 순회하면서 만