본문 바로가기

분류 전체보기232

최솟값만들기 A와 B의 원소를 하나씩 뽑아 곱하고 더한값중 최솟값이 되는 경우를 찾는것이다. 지난번에도 이번에도 역시 똑같이 생각했다. A에선 가장 작은 수 * B에선 가장 큰 수를 계산해준다. ㅇ 풀이 public int solution(int[] a, int[] b){ Arrays.sort(a); Arrays.sort(b); int answer = 0; for(int i = 0; i < a.length; i++) { answer += a[i] * b[a.length-i-1]; } return answer; } a와 b둘다 오름차순으로 정렬해준다. 그리고 a의 가장 작은수와 b의 가장 큰수를 곱해주고 누적시킨다. 끝. 2024. 2. 13.
JadenCase 문자열 ㅇ 1차풀이 public static String solution(String s) { StringBuilder result = new StringBuilder(); String answer = ""; for (char c : s.toCharArray()) { if (Character.isLetter(c)) { result.append(Character.toLowerCase(c)); }else { result.append(c); } } String convertS = result.toString(); String[] S = convertS.split(" "); for(int i = 0; i < S.length; i++) { if(Character.isLetter(S[i].charAt(0))){ S[i]=.. 2024. 2. 8.
다시 lv2로 lv1만푸니깐 자료구조를 공부할수없어 다시 lv2로 돌아왔다. 풀었던 문제긴한데 다시 풀어봤다. 띄어쓰기를 기준으로 split 한다음, min max 를 split 한 배열의 첫번째 원소로 잡고, 반복문으로 한번 돌고 가장작으면 min, 가장 크면 max 해서 return 해줬다. 지난번엔 sort 해서 풀었던데, s가 String 이기도하고 '-'가 붙으면 역순으로 정렬되기도 해서 안된다. ㅇ 풀이 public String solution(String s) { String[] S = s.split(" "); int min = Integer.parseInt(S[0]); int max = Integer.parseInt(S[0]); for(int i = 0; i < S.length; i++){ if(min .. 2024. 2. 7.
최대공약수와 최소공배수 간만에 들어보는 최대공약수와 최소공배수 최대공약수는 유클리드 호제법을 사용했다. 3%12 = 3 다음으로 m을 n의자리로, 나머지를 m의자리로 보내고 계속해서 나머지를 구한다. 그렇게 했을때, 나머지가 0이 될 때 m이 최대공약수가 된다. 다른 예를 보자. n = 20, m = 14 일때 이렇게 되면 나머지가 0이될때의 m의자리는 2이니, 최대공약수는 2가 된다. 최소공배수는 (n * m) / 최대공약수 하면 나온다. ㅇ 풀이 public int[] solution(int n, int m) { int[] answer = new int[2]; int a1 = n; int a2 = m; while(a2 != 0){ int temp = a1 % a2; a1 = a2; a2 = temp; } answer[0] .. 2024. 2. 6.