개발자 도전기
[국비지원] 37일차 - 소인수분해 본문
프로그래머스 입문 / 소인수분해
입출력 예시
주어진 숫자 n의 소인수를 순서대로 정렬한 배열을 구하는 문제이다
1) 숫자 n 약수를 구하기 위해 조건 n % i == 0
을 사용하였다
2) 약수 중에서도 소수인 것만 구하기 위해 n % i == 0
일 동안 n /= i
을 해주었다
3) 조건에 맞는 소인수를 담아 리턴했다
import java.util.*;
class Solution {
public int[] solution(int n) {
List<Integer> list = new ArrayList<>();
for(int i = 2; i<=10000; i++){
if(n%i == 0){
list.add(i);
if(n/i == 1){break;}
while (n % i == 0) {
n /= i;
}
}
}
return list.stream().mapToInt(Integer::intValue).toArray();
}
}
추가로, 다른 사람의 풀이를 보고 LinkedHashSet에 대해 알게 되었다.
- 중복된 값을 허용하지 않고
- 삽입된 순서를 유지하는 특징이 있어서
코딩 테스트할 때 유용하게 사용할 수 있을 것 같다
오늘은 Socket을 활용해서 네트워크 통신을 하는 것을 배웠는데 여태까지 배운 것을 활용할 수 있어서 재미있는 시간이었다
추가로 스터디에서 시간 복잡도를 발표하였다
2024.03.29 - [개발공부/JAVA] - [JAVA] 네트워크 입출력
[JAVA] 네트워크 입출력
서버와 클라이언트 -네트워크는 여러 컴퓨터들을 통신 회선으로 연결한 것을 말한다 -네트워크에서 서비스를 제공하는 프로그램을 서버라고 부른다 -서비스를 요청하는 프로그램을 클라이언트
abc-datatype.tistory.com
2024.03.27 - [개발공부/코딩용어] - [Study] 시간복잡도, Big-O
[Study] 시간복잡도, Big-O
🚩시간복잡도란? 알고리즘의 성능을 표기하기 위해 사용한다. '완료까지 걸리는 절차의 수'라고 생각하면 된다 완료까지 N단계가 걸리는 알고리즘의 시간복잡도는 O(N)이다. 가장 시간복잡도가
abc-datatype.tistory.com
'개발공부 > TIL' 카테고리의 다른 글
[국비지원] 39일차 (0) | 2024.04.02 |
---|---|
[국비지원] 38일차 - Hello git (0) | 2024.04.01 |
[국비지원] 36일차 - PrintStream, File (0) | 2024.03.29 |
[국비지원] 35일차 - I/O Stream (0) | 2024.03.28 |
[국비지원] 34일차 - Thread (0) | 2024.03.26 |