[Programmers/Java/Lv.0] 44.합성수 찾기
·
👨‍💻 Coding Test/Java
문제 설명약수의 개수가 세 개 이상인 수를 합성수라고 합니다. 자연수 n이 매개변수로 주어질 때 n이하의 합성수의 개수를 return하도록 solution 함수를 완성해주세요. 제한사항1 ≤ n ≤ 100 입출력 예nresult105158입출력 예 #1 : 10 이하 합성수는 4, 6, 8, 9, 10 로 5개입니다. 따라서 5를 return합니다. 입출력 예 #2 : 15 이하 합성수는 4, 6, 8, 9, 10, 12, 14, 15 로 8개입니다. 따라서 8을 return합니다. 나의 풀이class Solution { public int solution(int n) { int answer = 0; for(int i = 1; i = 3){ ..
[Programmers/Java/Lv.0] 43.주사위의 개수
·
👨‍💻 Coding Test/Java
문제 설명머쓱이는 직육면체 모양의 상자를 하나 가지고 있는데 이 상자에 정육면체 모양의 주사위를 최대한 많이 채우고 싶습니다. 상자의 가로, 세로, 높이가 저장되어있는 배열 box와 주사위 모서리의 길이 정수 n이 매개변수로 주어졌을 때, 상자에 들어갈 수 있는 주사위의 최대 개수를 return 하도록 solution 함수를 완성해주세요. 제한사항- box의 길이는 3입니다. - box[0] = 상자의 가로 길이 - box[1] = 상자의 세로 길이 - box[2] = 상자의 높이 길이 - 1 ≤ box의 원소 ≤ 100 - 1 ≤ n ≤ 50 - n ≤ box의 원소 - 주사위는 상자와 평행하게 넣습니다. 입출력 예boxnresult[1, 1, 1]11[10, 8, 6]312입출력 예 #1 : 상자의 ..
[Programmers/Java/Lv.0] 42.배열 회전시키기
·
👨‍💻 Coding Test/Java
문제 설명정수가 담긴 배열 numbers와 문자열 direction가 매개변수로 주어집니다. 배열 numbers의 원소를 direction방향으로 한 칸씩 회전시킨 배열을 return하도록 solution 함수를 완성해주세요. 제한사항- 3 ≤ numbers의 길이 ≤ 20- direction은 "left" 와 "right" 둘 중 하나입니다. 입출력 예numbersdirectionresult[1, 2, 3]"right"[3, 1, 2][4, 455, 6, 4, -1, 45, 6]"left"[455, 6, 4, -1, 45, 6, 4]입출력 예 #1 : numbers가 [1, 2, 3]이고 direction이 "right" 이므로 오른쪽으로 한 칸씩 회전시킨 [3, 1, 2]를 return합니다. 입출력..
[정렬 알고리즘] 선택 정렬(Selection Sort)
·
🧠 Computer Science/Algorithm
선택 정렬이란?선택 정렬은 정렬되지 않은 데이터들에 대해 `가장 작은 데이터를 찾아` 가장 앞의 데이터와 교환해나가는 방식이다. 최솟값의 자리를 변수에 저장해놓고 그 자리의 값과 나머지 값들을 비교하며 최종 최솟값을 찾는 반복문이 끝나면 그때 스왑해준다. 선택 정렬 장점과 단점장점구현이 쉽다.내림차순으로 정렬되어있는 요소를 오름차순으로 재정렬할 때 효율이 좋다.비교 횟수는 많지만, 실제로 교환하는 횟수는 적다. 교환이 많이 일어나는 자료상태라면 효율적이다.(버블정렬과 비교했을 때, 똑같은 O(n2) 의 시간복잡도를 갖지만, 시간을 측정해보면 버블정렬보다 시간이 짧게 소요됨.)단점서로 떨어져 있는 요소를 교환하기 때문에 안정적이지 않다.(중복된 값이 2개 있을 때 요소의 순서가 바뀔 수 있음.)이미 정렬된..
[정렬 알고리즘] 버블 정렬(Bubble Sort)
·
🧠 Computer Science/Algorithm
버블 정렬이란?버블 정렬은 원소를 비교하는 과정에서 연탄 나르기와 비슷하다. 서로 인접한 두 원소의 대소를 비교하고, 조건에 맞지 않다면 자리를 교환하는 정렬 알고리즘이다. 시간 복잡도가 O(n²)로 상당히 느리지만, 소스코드가 직관적이고 구현이 매우 간단하다는 장점이 있다. 버블 정렬 장점과 단점버블 정렬 장점구현이 매우 간단하고, 소스코드가 직관적이다.정렬하고자 하는 배열 안에서 교환하는 방식이므로, 다른 메모리 공간을 필요로 하지 않다. ➡ 제자리 정렬(in-place sorting)버블 정렬 단점시간복잡도가 최악, 최선, 평균 모두 O(n²)으로, 굉장히 비효율적이다.정렬 돼있지 않은 원소가 정렬 됐을 때의 자리로 가기 위해서, 교환 연산(swap)이 많이 일어나게 된다. 시간 복잡도알고리즘Bes..
[그래프 탐색 알고리즘] DFS(깊이 우선 탐색)
·
🧠 Computer Science/Algorithm
DFS(Depth-First-Search)란?그래프의 시작 노드에서 출발하여 탐색할 한 쪽 분기를 정해서 최대깊이까지 탐색을 마친 후, 다른쪽 분기로 이동하여 다시 탐색을 수행하는 알고리즘이다. 또한 DFS는 그래프 완전 탐색(모든 노드를 방문)이며, 주로 스택(Stack) 자료구조를 사용하거나 재귀 호출을 통해 구현된다. DFS 장점과 단점DFS 장점현 경로상의 노드들만 기억하면 되므로 저장공간 수요가 비교적 적음목표 노드가 깊은 단계에 있을 경우 해를 빨리 구할 수 있음DFS 단점해가 없는 경로가 깊을 경우 탐색시간이 오래 걸릴 수 있음얻어진 해가 최단 경로가 된다는 보장이 없음 그래프 표현 방법우선 탐색하기 전 연결의 정보인 그래프를 표현부터 해야할 것이다. 그래프를 표현하는 방법에는 인접 행렬과,..
Developer Quarterly
DQ