[Java] Set을 List로, List를 Set으로 생성자를 이용하는 방법과 copyOf를 이용하는 방법 두 가지가 있다.1. Set -> ListSet set = new HashSet(list);Set set = Set.copyOf(list); // unmodifiable, 불변객체2. List -> SetList list = new ArrayList(set);List list = List.copyOf(set); // unmodifiable, 불변객체 Java 2025.03.01
[Java] 10진수 <-> 2진수, 8진수, 16진수 변환 1. 10진수를 2/8/16진수로java.lang.Integer의 toBinaryString(int i), toOctalString(int i), toHexaString(int i) 메소드를 이용 2. 2/8/16진수를 10진수로java.lang.Integer 클래스의 parseInt() 메소드 이용2진수를 10진수로 : parseInt(String s, 2)8진수를 10진수로 : parseInt(String s, 8)16진수를 10진수로 : parseInt(String s, 16) Java 2025.03.01
[프로그래머스] 비밀지도 1. 시간이 빠른 풀이class Solution { public String[] solution(int n, int[] arr1, int[] arr2) { String[] answer = new String[n]; StringBuilder sb; for(int i =0 ;i 2. 가독성 높은 풀이 class Solution { public String[] solution(int n, int[] arr1, int[] arr2) { String[] answer = new String[n]; StringBuilder sb; for(int i =0 ;i 3. 다른 분 풀이 변수로 두는 것보다 상수로 놓고 자르는 게 훨.. 코딩테스트/Programmers 2025.02.28
[프로그래머스] k번째수 1. 내 풀이System.arraycopy 사용import java.util.*;class Solution { public int[] solution(int[] array, int[][] commands) { int[] answer = new int[commands.length]; int[] list; for(int i = 0; i 2. 다른 분 풀이Arrays.copyOfRange 사용.import java.util.Arrays;class Solution { public int[] solution(int[] array, int[][] commands) { int[] answer = new int[commands.length];.. 코딩테스트/Programmers 2025.02.28
[프로그래머스] 푸드 파이트 대회 1. 내 답안StringBuilder로 작업했다.class Solution { public String solution(int[] food) { StringBuilder sb = new StringBuilder(); for(int i = 1 ; i 2. 다른 분들 답안문자열 앞뒤에 횟수만큼 새로 덧붙여준다.class Solution { public String solution(int[] food) { String answer = "0"; for (int i = food.length - 1; i > 0; i--) { for (int j = 0; j 3. 실행 시간 비교 - 아래가 내 코드, 위에가 다른 분 코드이다.- 내 코.. 코딩테스트/Programmers 2025.02.28
[프로그래머스] 숫자 문자열과 영단어 1. 내 풀이쌩구현 ㅎ....class Solution { public int solution(String s) { StringBuilder sb = new StringBuilder(); for(int i = 0; i = 0 && num = s.length()) continue; String str = s.substring(i, i+3); if(str.equals("zer")) { i += 3; sb.append(0); } else if(str.equals("one")){ i += 2; sb.append(1); .. 코딩테스트/Programmers 2025.02.28
[프로그래머스] 두 개 뽑아서 더하기 TreeSet을 적절하게 사용할 줄 아는가? 1. 초기 버전 코드다른 사람들 코드 훔쳐보는데 TreeSet 사용하면 정렬도 같이 된다는 말에 아맞다! 그게있었지! 했다. 그래서 코드를 리팩토링 해보았다.import java.util.*;import java.util.stream.*;class Solution { public int[] solution(int[] numbers) { Set set = new HashSet(); for(int i = 0; i list = new ArrayList(set); Collections.sort(list); return list.stream().mapToInt(i -> i.. 코딩테스트/Programmers 2025.02.28
[프로그래머스] 가장 가까운 같은 글자 1. 내 풀이alphabet을 char로 해석해서, int값으로 내려놓으면 26개의 배열 내로 모든 알파벳이 어디에 있는지 인덱스를 알 수 있다.class Solution { public int[] solution(String s) { int[] alphabet = new int[26]; int[] answer = new int[s.length()]; for(int i = 0; i 2. 다른 분 풀이Map을 사용하셨다. map의 getOrDefault함수도 사용하셨다.원리는 같지만 훨씬 세련되게 풀었다. 보고 배워야지!import java.util.*;class Solution { public int[] solution(String s) .. 코딩테스트/Programmers 2025.02.26
[프로그래머스] 시저 암호 https://school.programmers.co.kr/learn/courses/30/lessons/12926 1. 내 풀이StringBuilder를 이용해 효율성을 잡았다.아래 분의 풀이처럼 풀면 result += ~~ 할때마다 새로운 객체가 할당되어 메모리 낭비 & CPU 자원이 낭비될 수 있다. 이게 다 효율성에서 나중에 걸리니 미리미리 StringBuilder 사용하는 습관을 들여두는게 좋을 것 같다.class Solution { public String solution(String s, int n) { char[] chars = s.toCharArray(); StringBuilder sb = new StringBuilder(); for(int i =.. 코딩테스트/Programmers 2025.02.26
[프로그래머스] 이상한 문자 만들기 1. 내 코드StringBuilder를 통해 값 변경 가능한 곳으로 옮겨주고 쌩구현했다.나는 보통 쌩으로 구현하는 경우가 많은 것 같다. API를 좀 더 잘 이용하는 방법이 필요해보인다.class Solution { public String solution(String s) { StringBuilder sb = new StringBuilder(s); int wordIdx = 0; for(int i = 0; i= 'a' && ch = 'A' && ch 2. 다른 사람 코드공백이 여러 개일 수도 있다는 말에 번거로울 것 같다고 생각해서 split 하지 않았는데, 오히려 하니까 좋은 것 같다.그리고 공백에도 toLowerCase(), toUpperCase().. 코딩테스트/Programmers 2025.02.26