본문 바로가기

Java

(110)
[java/프로그래머스/120812] 최빈값 구하기 (.getOrDefault(), .keySet()) ✏️ 문제 설명 최빈값은 주어진 값 중에서 가장 자주 나오는 값을 의미합니다. 정수 배열 array가 매개변수로 주어질 때, 최빈값을 return 하도록 solution 함수를 완성해보세요. 최빈값이 여러 개면 -1을 return 합니다.✏️ code📌 freqMap.put(n, freqMap.getOrDefault(n, 0)+1)): freqMap에 n이라는 키가 존재한다면 그 값을, 없다면 0을 반환한 뒤 그 value에 횟수를 +1합니다.📌 for (int key : freqMap.keySet()) {...}: freqMap의 key를 하나씩 순회해, freqMap.get(key) == max와 같다면 count++, answer = key 합니다.이후 count가 1보다 크다면 -1(최빈값이 ..
[java/프로그래머스/120869] 외계어 사전 (isMatch, .contains()) ✏️ 문제 설명 PROGRAMMERS-962 행성에 불시착한 우주비행사 머쓱이는 외계행성의 언어를 공부하려고 합니다. 알파벳이 담긴 배열 spell과 외계어 사전 dic이 매개변수로 주어집니다. spell에 담긴 알파벳을 한번씩만 모두 사용한 단어가 dic에 존재한다면 1, 존재하지 않는다면 2를 return하도록 solution 함수를 완성해주세요. ✏️ codeclass Solution { public int solution(String[] spell, String[] dic) { for (String word : dic) { boolean isMatch = true; for (String s : spell) { if..
[java/프로그래머스/120896] 한 번만 등장한 문자 (.getOrDefault(c, 0)+1, .entrySet(), .toString(), .toCharArray(), Arrays.sort()) ✏️ 문제 설명 문자열 s가 매개변수로 주어집니다. s에서 한 번만 등장하는 문자를 사전 순으로 정렬한 문자열을 return 하도록 solution 함수를 완성해보세요. 한 번만 등장하는 문자가 없을 경우 빈 문자열을 return 합니다. ✏️ code 1차📌 frequencyMap.getOrDefault(c, 0) +1: frequencyMap.getOrDefault(c, 0) c라는 키가 존재하면 그 값을, 존재하지 않는다면 0을 반환즉, c라는 문자가 HashMap에 존재하면 기존 등장 횟수를 가져오고, 없으면 기본값 0을 사용하는 것입니다.📌 frequencyMap.entrySet(): 각 문자의 등장횟수(Integer)를 저장하는 HashMap.entrySet()은 Map의 모든 key, v..
[java/프로그래머스/120808] 분수의 덧셈 (gcd, lcm) ✏️ 문제 설명 첫 번째 분수의 분자와 분모를 뜻하는 numer1, denom1, 두 번째 분수의 분자와 분모를 뜻하는 numer2, denom2가 매개변수로 주어집니다. 두 분수를 더한 값을 기약 분수로 나타냈을 때 분자와 분모를 순서대로 담은 배열을 return 하도록 solution 함수를 완성해보세요. ✏️ codeclass Solution { public int[] solution(int numer1, int denom1, int numer2, int denom2) { int numer = numer1 * denom2 + numer2 * denom1; int denom = denom1 * denom2; int gcd = gcd(numer, denom);..
[java/프로그래머스/120894] 영어가 싫어요 (HashMap, String.valueOf(), Long.parseLong()) ✏️ 문제 설명 영어가 싫은 머쓱이는 영어로 표기되어있는 숫자를 수로 바꾸려고 합니다. 문자열 numbers가 매개변수로 주어질 때, numbers를 정수로 바꿔 return 하도록 solution 함수를 완성해 주세요.  ✏️ code 1차📌 HashMapHashMap의 key : value를 활용하여 문제를 풀어보았습니다만, 다소 복잡했습니다.public class P120894 { public long solution(String numbers) { HashMap map = new HashMap(); String arr[] = {"zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"..
[java/프로그래머스/120853] 컨트롤 제트 (s.split(" "), stack.pop(), stack.push()) ✏️ 문제 설명 숫자와 "Z"가 공백으로 구분되어 담긴 문자열이 주어집니다. 문자열에 있는 숫자를 차례대로 더하려고 합니다. 이 때 "Z"가 나오면 바로 전에 더했던 숫자를 뺀다는 뜻입니다. 숫자와 "Z"로 이루어진 문자열 s가 주어질 때, 머쓱이가 구한 값을 return 하도록 solution 함수를 완성해보세요. ✏️ code 1차 public int solution(String s) { String arr[] = s.split(" "); int result = 0; for (int i = 0; i ✏️ code 2차📌 Stack의 FILO 특성을 고려하여 Z가 나올 때마다 pop하는 것으로 풀어보았습니다. public int solution2(Str..
[java/프로그래머스/120852] 소인수분해 (HashSet, Arrays.sort(), LinkedHashSet) ✏️ 문제 설명 소인수분해란 어떤 수를 소수들의 곱으로 표현하는 것입니다. 예를 들어 12를 소인수 분해하면 2 * 2 * 3 으로 나타낼 수 있습니다. 따라서 12의 소인수는 2와 3입니다. 자연수 n이 매개변수로 주어질 때 n의 소인수를 오름차순으로 담은 배열을 return하도록 solution 함수를 완성해주세요. ✏️ code 1차📌 Set answer = new HashSet();: 소인수 값의 중복을 허용하지 않기 위해 HashSet으로 선언했습니다.📌 for (int i = 2; i - Math.sqrt(n)까지만 하는 이유: 이만큼만 반복해서 나누어 떨어지는 수가 있는지 확인하면 나머지 큰 값들은 이미 검증되었거나 자동으로 알 수 있기 때문입니다. - while (n % i == 0) ..
[java/프로그래머스/120885] 이진수 더하기(Integer.parseInt(), toString(), toBinaryString()) ✏️ 문제 설명 이진수를 의미하는 두 개의 문자열 bin1과 bin2가 매개변수로 주어질 때, 두 이진수의 합을 return하도록 solution 함수를 완성해주세요. ✏️ code📌 Integer.parseInt(bin1, 2)- parseInt(String s, int radix) 문자열 s를 주어진 radix(진법) 기준으로 변환합니다.- ex) int num = Integer.parseInt("110", 2) => 2진수 "110"을 10진수 6으로 변환📌 Integer.toBinaryString(sum)- toBinaryString(int i) 정수 i를 2진수 문자열로 변환합니다.- ex) String bin = Integer.toBinaryString(6) => 10진수 6을 2진수 "1..

반응형