안녕하세요. pitang입니다.
컬렉션 프레임 워크 Set컬렉션에 대한 퀴즈를 풀어보겠습니당~
저번 List컬렉션의 방법과 같이 Junit으로 메서드를 검증하여 오류가 없으면 정답인 퀴즈들입니다!
Quiz 1번
파라미터 arr의 값들을 저장한 HashSet 객체를 리턴하는 메서드를 작성하세요.
아래의 junit으로 오류를 확인하세요.
class Ex01Test { @Test void test() { Ex01 e = new Ex01(); Set<Integer> set1 = e.toSet(new int[] {3, 4, 5}); assertEquals(3, set1.size()); Set<Integer> set2 = e.toSet(new int[] {3, 4, 5, 6, 5,}); assertEquals(4, set2.size()); } }
⬇️⬇️⬇️ 정답은 더보기를 눌러주세요 ⬇️⬇️⬇️
public class Ex01 { public Set<Integer> toSet(int[] arr) { // 파라미터 arr의 값들을 저장한 HashSet 객체를 리턴 Set<Integer> set = new HashSet<>(); for(int i = 0; i < arr.length; i++) { set.add(arr[i]); } return set; } }
Quiz 2번
파라미터 arr의 값들을 저장한 HashSet 객체를 리턴하는 메서드를 향상된 for문으로 작성하세요. (1번과는 파라미터가 다릅니다.)
아래의 junit으로 오류를 확인하세요.
class Ex02Test { @Test void test() { Ex02 e = new Ex02(); Set<String> set1 = e.toSet(new String[] {"java", "spring", "html"}); assertEquals(3, set1.size()); Set<String> set2 = e.toSet(new String[] {"java","Java","jAva","jaVa","javA"}); assertEquals(5, set2.size()); Set<String> set3 = e.toSet(new String[] {"spring","java","java","css","css"}); assertEquals(3, set3.size()); } }
⬇️⬇️⬇️ 정답은 더보기를 눌러주세요 ⬇️⬇️⬇️
public class Ex02 { public Set<String> toSet(String[] arr) { Set<String> set = new HashSet<>(); for(String item : arr) { set.add(item); } return set; } }
Quiz 3번
arr 배열에 중복된 값들만 set에 모아서 리턴하는 메서드를 작성하세요.
아래의 junit으로 오류를 확인하세요.
class Ex03Test { @Test void test() { Ex03 e = new Ex03(); Set<Integer> set1 = e.dupSet(new int[] {1, 2, 3}); assertEquals(0, set1.size()); Set<Integer> set2 = e.dupSet(new int[] {3, 4, 5, 5}); assertEquals(1, set2.size()); Set<Integer> set3 = e.dupSet(new int[] {3, 4, 5, 3, 4, 5}); assertEquals(3, set3.size()); } }
⬇️⬇️⬇️ 정답은 더보기를 눌러주세요 ⬇️⬇️⬇️
public class Ex03 { public Set<Integer> dupSet(int[] arr) { //arr 배열에 중복된 값들만 set에 모아서 리턴 Set<Integer> set = new HashSet<>(); Set<Integer> result = new HashSet<>(); for(int e : arr) { if(set.contains(e)) { result.add(e); } else { set.add(e); } } return result; } }
Quiz 4번
arr 배열에 중복된 값들만 set에 모아서 리턴하는 메서드를 작성하세요. (3번과는 파라미터가 다릅니다.)
아래의 junit으로 오류를 확인하세요.
class Ex04Test { @Test void test() { Ex04 e = new Ex04(); Set<String> set1 = e.dupSet(new String[] {"cap", "ironman", "widow"}); assertEquals(0, set1.size()); Set<String> set2 = e.dupSet(new String[] {"rm", "jungkook", "bts", "bts"}); assertEquals(1, set2.size()); Set<String> set3 = e.dupSet(new String[] {"itzy", "itzy", "red", "velvet", "son", "son"}); assertEquals(2, set3.size()); } }
⬇️⬇️⬇️ 정답은 더보기를 눌러주세요 ⬇️⬇️⬇️
public class Ex04 { public Set<String> dupSet(String[] arr) { //arr 배열에 중복된 값들만 set에 모아서 리턴 (문자열) Set<String> set = new HashSet<>(); Set<String> result = new HashSet<>(); for(String str : arr) { if(set.contains(str)) { result.add(str); } else { set.add(str); } } return result; } }
Quiz 5번
str에 몇 개의 문자가 사용되었는지를 리턴하는 메서드를 작성하세요.
아래의 junit으로 오류를 확인하세요.
class Ex05Test { @Test void test() { Ex05 e = new Ex05(); assertEquals(3, e.countLetter("cap")); assertEquals(3, e.countLetter("java")); assertEquals(6, e.countLetter("ironman")); assertEquals(1, e.countLetter("aaaaaaaaa")); } }
⬇️⬇️⬇️ 정답은 더보기를 눌러주세요 ⬇️⬇️⬇️
public class Ex05 { public int countLetter(String str) { //str에 몇 개의 문자가 사용되었는지를 return Set<Character> set = new HashSet<>(); for(int i = 0; i < str.length(); i++) { set.add(str.charAt(i)); } return set.size(); } }
Quiz 6번
몇 개의 문자가 중복사용되었는지를 리턴하는 메서드를 작성하세요.
아래의 junit으로 오류를 확인하세요.
class Ex06Test { @Test void test() { Ex06 e = new Ex06(); assertEquals(1, e.dupLetter("java")); assertEquals(0, e.dupLetter("spring")); assertEquals(1, e.dupLetter("aaaaaaaaaaaaaa")); assertEquals(3, e.dupLetter("captainamerica")); } }
⬇️⬇️⬇️ 정답은 더보기를 눌러주세요 ⬇️⬇️⬇️
public class Ex06 { public int dupLetter(String str) { //몇 개의 문자가 중복사용되었는지? Set<Character> set = new HashSet<>(); Set<Character> dup = new HashSet<>(); for(int i = 0; i < str.length(); i++) { char c = str.charAt(i); if(set.contains(c)) { dup.add(c); } else { set.add(c); } } return dup.size(); } }
Quiz 7번
한번만 사용된 문자의 개수를 리턴하는 메서드를 작성하세요.
아래의 junit으로 오류를 확인하세요.
class Ex07Test { @Test void test() { Ex07 e = new Ex07(); assertEquals(3, e.countOnlyLetter("abc")); assertEquals(2, e.countOnlyLetter("abca")); assertEquals(2, e.countOnlyLetter("java")); assertEquals(0, e.countOnlyLetter("aaaaaa")); } }
⬇️⬇️⬇️ 정답은 더보기를 눌러주세요 ⬇️⬇️⬇️
public class Ex07 { public int countOnlyLetter(String str) { //한번만 사용된 문자의 개수 Set<Character> set = new HashSet<>(); Set<Character> dup = new HashSet<>(); for(int i = 0; i < str.length(); i++) { char c = str.charAt(i); if(set.contains(c)) { dup.add(c); } else { set.add(c); } } for(Character c : dup) { set.remove(c); } return set.size(); } }
Quiz 8번
a 배열에만 있는 아이템들만 모은 set을 리턴하는 메서드를 작성하세요.
아래의 junit으로 오류를 확인하세요.
class Ex08Test { @Test void test() { Ex08 e = new Ex08(); Set<Integer> set1 = e.diff(new int[] {1, 2, 3}, new int[] {2, 3, 4}); assertEquals(1, set1.size()); assertTrue(set1.contains(1)); assertFalse(set1.contains(2)); assertFalse(set1.contains(3)); assertFalse(set1.contains(4)); } }
⬇️⬇️⬇️ 정답은 더보기를 눌러주세요 ⬇️⬇️⬇️
public class Ex08 { public Set<Integer> diff(int[] a, int[] b) { //a 배열에만 있는 아이템들만 모음 set 리턴 Set<Integer> set = new HashSet<>(); for(int item : a) { set.add(item); } for(int item : b) { set.remove(item); } return set; } }
감사합니다.
*m1 맥북을 사용 중입니다.*
'6개월 대장정 > JAVA 퀴즈' 카테고리의 다른 글
28일차 - 컬렉션 프레임 워크 - Map컬렉션 Quiz(2) (0) | 2021.09.27 |
---|---|
27일차 - 컬렉션 프레임 워크 - Map컬렉션 Quiz(1) (0) | 2021.09.23 |
25일차 - 컬렉션 프레임 워크-List컬렉션 Quiz (0) | 2021.09.17 |