▶Map 작성방법(기억해 두어야 할 것)◀
-map 생성 : Map<자료형> map = new HashMap<자료형 입력하지 않아도 됨!>();
-map의 key에 값 저장 : map.put(key값, value값)
-map에 저장된 key의 값 불러오기 : map.get(key값)
-map에 저장된 key의 값들 keys라는 곳에 저장 : Set<자료형> keys = map.keySet();
-key가 map에존재하는지 아닌지 확인 : map.containsKey(key값)
-map에 있는 key와 key의 value 제거 : map.remove(key)
1. mapBully
만약 key "a" 가 있다면, key "b"의 값 "a"의 값을 가지게 하고 key "a"의 값은 ""로 바꿔라.
public Map<String, String> mapBully(Map<String, String> map) {
if(map.containsKey("a")){
map.put("b", map.get("a"));
map.put("a", "");
}
return map;
}
2. mapShare
만약 key "a"가 값을 가지고 있다면 key "b"의 값 "a"의 값을 가지게해라. 모든 케이스에서 key "c"는 삭제해라
public Map<String, String> mapShare(Map<String, String> map) {
if(map.containsKey("a")){
map.put("b", map.get("a"));
}
map.remove("c");
return map;
}
3. mapAB
map은 "a"와 "b"키를 포함할수도 있고 아닐수도 있다. 만약 두개의 키가 모두 나타난다면 두개의 key의 값들을 합친 결과를 "ab"키에 저장해 출력해라.
public Map<String, String> mapAB(Map<String, String> map) {
Map<String,String> m = new HashMap<>();
Set<String> keys = map.keySet();
for(String key : keys){
if(m.containsKey("a") && key.equals("b")){
m.put("ab", map.get("a") + map.get("b"));
}
m.put(key, map.get(key));
}
return m;
}
4. topping1
음식 keys그리고 topping value의 map이 주어진다.
음식 key가 "ice cream"이라면 topping value값은 "cherry"로 바꿔라. 모든 케이스에서 key "bread"의 topping value값은 "butter"이다.
public Map<String, String> topping1(Map<String, String> map) {
map.put("bread", "butter");
if(map.containsKey("ice cream")){
map.put("ice cream", "cherry");
}
return map;
}
5. topping2
음식 keys그리고 topping value의 map이 주어진다.
음식 key "ice cream"이있다면, 새로운 key "yogurt" 를 만들어 topping value값은 key "ice ceram"의 값으로 채워 map에 추가해라. 만약 key "spinach"가 있다면 value값은 "nuts"로 바꿔라.
public Map<String, String> topping2(Map<String, String> map) {
if(map.containsKey("ice cream")){
map.put("yogurt", map.get("ice cream"));
}
if(map.containsKey("spinach")){
map.put("spinach", "nuts");
}
return map;
}
6. topping3
음식 keys그리고 topping value의 map이 주어진다.
만약 key "potato"가 값을 가진다면, 새로운 key "fries"를 만들어 topping value값은 key "potato"의 값으로 채워 map에 추가해라. 만약 key "salad"가 있다면, 새로운 key "spinach"를 만들어 topping value값은 key "salad"의 값으로 채워 map에 추가해라.
public Map<String, String> topping3(Map<String, String> map) {
if(map.containsKey("potato")){
map.put("fries", map.get("potato"));
}
if(map.containsKey("salad")){
map.put("spinach", map.get("salad"));
}
return map;
}
7. mapAB2
만약 "a", "b" key둘다 map에 있고 같은 값을 가진다면, "a", "b"둘다 map에서 삭제해라.
public Map<String, String> mapAB2(Map<String, String> map) {
if(map.containsKey("a") && map.containsKey("b") && map.get("a").equals(map.get("b"))){
map.remove("a");
map.remove("b");
}
return map;
}
8. mapAB3
만약 "a" 나 "b" key중 하나만 있다면(key 둘 다 존재할 때 말고), 존재하는 key의 값으로 채워서 반환해라.
public Map<String, String> mapAB3(Map<String, String> map) {
if(!map.containsKey("a") && map.containsKey("b")){
map.put("a", map.get("b"));
}
if(map.containsKey("a") && !map.containsKey("b")){
map.put("b", map.get("a"));
}
return map;
}
9. mapAB4
만약 key "a"와 "b"가 서로다른 길이의 문자열 값을 가진다면, 더 긴 문자열을 key "c"에 추가해라.
만약 "a"와 "b"의 문자열이 같다면 key "a"와 "b"의 값을 ""빈 문자열로 만들어라.
public Map<String, String> mapAB4(Map<String, String> map) {
String a = map.get("a");
String b = map.get("b");
if(map.containsKey("a") && map.containsKey("b")){
if(a.length() != b.length()){
if(a.length()> b.length()){
map.put("c", a);
}else{
map.put("c", b);
}
}else{
map.put("a","");
map.put("b","");
}
}
return map;
}
'Algorithm > CODINGBAT[Java]' 카테고리의 다른 글
CodinBat Array-1 (0) | 2021.10.04 |
---|---|
CodingBat Map-2 (0) | 2021.09.28 |
CodingBat String-1 (0) | 2021.09.27 |
CodingBat Warmup-2 (0) | 2021.09.27 |
CodingBat Warmup-1 (0) | 2021.09.27 |