List, Set, Map 관련 연습문제 - 주로 각 인터페이스에서 활용되는 메서드의 활용방법을 연습시키는 문제였던 듯 싶다.
따라서 적절한 메서드만 찾아내면 되는 문제였고, 난이도 자체는 어렵지 않았다.
오늘은 잘 몰랐던 문제들만 정리했다.
Map 순회
1. 처음에 작성한 코드. keySet을 이용한 Map 순회 방법을 전혀 몰랐다.
package com.codestates.coplit;
import java.util.*;
public class Solution {
public int addOddValues(HashMap<Character, Integer> hashMap) {
//TODO..
Character[] arr = new Character[]{}; // 키셋을 배열로 만들어, for문이 순회할 수 있도록 배열 선언
arr=(hashMap.keySet()).toArray(new Character[hashMap.size()]); // 키셋을 배열로
int sum = 0 ;
for(int i =0; i < hashMap.size();i++){
if(hashMap.get(arr[i])%2==0){
sum += hashMap.get(arr[i]);
}
}
return sum;
}
}
2. 향상된 for문을 이용한 keySet 순회를 한다면, 아래와 같이 가능하지 않을까
package com.codestates.coplit;
import java.util.*;
public class Solution {
public int addOddValues(HashMap<Character, Integer> hashMap) {
//TODO..
int sum = 0 ;
for(Character key : hashMap.keySet()){
int value = hashMap.get(key);
if(value%2==0){
sum += value;
}
}
return sum;
}
}
한 단어 내 알파벳 사용횟수 구하기
예시 : helloworld
출력 : ('h',1), ('e',1) ('l',3), ('o',2),('w',1),('r',1),('d',1)
처음에 내가 짠 코드. 반복문이 의도대로 돌지 않아서 바로 폐기했다.
package com.codestates.coplit;
import java.util.*;
public class Solution {
public HashMap<Character, Integer> countAllCharacter(String str) {
//TODO..
int value = 0;
HashMap<Character, Integer> hashMap = new HashMap<Character, Integer>();
for(int i = 0; i <str.length();i++){
char ch = str.charAt(i);
for(int j = 0; j < str.length;j++){
if (ch == str.charAt(j)) {
value++;
}
}
hashMap.put(ch,value);
}
return hashMap;
}
}
3개월 뒤 다시 쓴 코드
import java.util.*;
public class Solution {
public HashMap<Character, Integer> countAllCharacter(String str) {
//TODO..
if(str.length()==0) return null;
HashMap<Character, Integer> cnt = new HashMap<>();
for(char ch : str.toCharArray()){
cnt.put(ch, cnt.getOrDefault(cnt.get(ch),0) + 1);
}
return cnt;
}
}
'코드스테이츠 > Section 1 JAVA' 카테고리의 다른 글
2023.05.04 18일차. Stream 연습문제 (0) | 2023.07.17 |
---|---|
2023.05.03 17일차. Annotation, Lambda, Stream (0) | 2023.07.17 |
2023.05.01 15일차. 알고리즘 시작 (0) | 2023.07.14 |
2023.04.27-28 13-14일차. BurgerQueen 주문프로그램 만들기 (0) | 2023.07.14 |
2023.04.25-26 11일차-12일차 상속, 캡슐화, 다형성, 추상화 (0) | 2023.07.14 |