프로그래머스 - 두 개 뽑아서 더하기.
이중 반복문을 돌려서 각 원소의 합을 set에 넣어준다.
set은 순서를 보장하지 않기때문에 배열에 담은 후 sort해준다.
import java.util.HashSet;
import java.util.Arrays;
class Solution {
public int[] solution(int[] numbers) {
HashSet set = new HashSet<>();
for (int i = 0; i < numbers.length - 1; i++) {
for (int j = i + 1; j < numbers.length; j++) {
set.add(numbers[i] + numbers[j]);
}
}
int[] answer = new int[set.size()];
int idx = 0;
for (int num : set) {
answer[idx++] = num;
}
Arrays.sort(answer);
return answer;
}
}
출처 : https://school.programmers.co.kr/learn/courses/30/lessons/68644
프로그래머스 - 폰켓몬
입력받은 배열을 set에 넣어준다.
폰켓몬 종류의 개수와 선택할 수 있는 폰켓몬의 개수 중 작은 값을 선택하면,
가장 많은 종류의 폰켓몬을 선택할 수 있는 방법을 찾을 수 있음
import java.util.HashSet;
class Solution {
public int solution(int[] nums) {
HashSet set = new HashSet<>();
for (int n : nums) {
set.add(n);
}
int numOfMonsters = nums.length / 2;
int numOfSpecies = set.size();
if (numOfSpecies > numOfMonsters) {
return numOfMonsters;
} else {
return numOfSpecies;
}
}
}
출처 : https://school.programmers.co.kr/learn/courses/30/lessons/1845
백준 1784번 - 듣보잡
사전순으로 출력해야해 TreeSet 사용
retainAll() 메서드로 교집합 구하고 size()로 크기, 반복문으로 명단 출력
import java.util.Scanner;
import java.util.TreeSet;
public class Acmicpc1764 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
TreeSet set1 = new TreeSet<>();
TreeSet set2 = new TreeSet<>();
int n = sc.nextInt();
int m = sc.nextInt();
for (int i = 0; i < n; i++) {
set1.add(sc.next());
}
for (int i = 0; i < m; i++) {
set2.add(sc.next());
}
set1.retainAll(set2);
for (String s : set1) {
System.out.println(set1.size());
System.out.println(s);
}
}
}
'CODING TEST' 카테고리의 다른 글
프로그래머스 - 달리기 경주 (0) | 2023.07.28 |
---|---|
프로그래머스 고득점 Kit - 스택/큐 프로세스 (0) | 2023.07.22 |
백준 1890번 - 동전 0 (0) | 2023.05.30 |
백준 2167번 - 2차원 배열의 합 (0) | 2023.05.29 |
백준 1254번 - 팰린드롬 만들기 (0) | 2023.05.29 |