My Melody Is Cute 컬렉션 연습문제
본문 바로가기

실습👁️‍🗨️/문제

컬렉션 연습문제

package com.codestates.coplit; 
import java.util.*;

public class  Solution { 
  public ArrayList<Integer> addNth(ArrayList<Integer> arrayList, int index, int element) {
    //TODO..해당인덱스에 요소를 추가하고 ArrayList를 리턴
    //
    if (index < 0 || index > arrayList.size()){//유효성검사 먼저 하고 입력값 추가
      return null;
    }
    arrayList.add(index, element);
    return arrayList;
  }
}

유효성검사 먼저 하기 - 인자값 확인후 메서드로 추가 - 리턴값 입력

 

package com.codestates.coplit; 
import java.util.*;

public class Solution { 
  public Integer removeFromFront(ArrayList<Integer> arrayList) {
    //TODO..유효성먼저 입력 첫번째요소 삭제하고 해당요소 리턴
    if ( arrayList.isEmpty())
    return null;
    
    return arrayList.remove(0);
    
  }
}
package com.codestates.coplit; 
import java.util.*;

public class Solution { 
  public ArrayList<Integer> removeFromBackOfNew(ArrayList<Integer> arrayList) {
    //TODO..입력받고 마지막요소가 제거된 새로운 arraylist를 리턴
    //유효성검증
    if ( arrayList.isEmpty()){
      return null;
    }

    ArrayList<Integer> newArray = new ArrayList<>(arrayList);//새로운 ArrayList생성    
    newArray.remove(arrayList.size()-1); //마지막요소 제거

    return newArray;
  }
}

앞의 문제들과 달라진건 새로운 ArrayList 생성

 

public class Solution { 
  public List<String> arrayToArrayList(String[] arr) {
    //TODO..배열을 입력받아 요소로 가지는 ArrayList로 변환하여 리턴
    //유효성검증
    if(arr == null || arr.length == 0){ //배열의 유효성검증
    return null;
    }

    ArrayList<String> arrayList = new ArrayList<>(Arrays.asList(arr));
    //.asList() ArrayList로 변환
    return arrayList;

  }
}

어렵다ㅠㅠ ArrayList로 변환하는 코드를 몰라서...

 

package com.codestates.coplit; 
import java.util.*;

public class Solution { 
  public int sumAllElements(ArrayList<Integer> arrayList) {
    //TODO.. 입력값을 모두 더한 값 리턴
    // 비어있는 리스트는 0 리턴
    //요소를 순회하면서 값을 모두 합하기
    int sum = 0;
    if (arrayList.isEmpty()){
      return 0;
    }
    Iterator<Integer> iterator = arrayList.iterator();

    while(iterator.hasNext()){
        sum += iterator.next();
      }
    return sum;

  }
}

기본 표기법을 잘 모르겠따.. Iterator<Integer> iterator = arrayList.iterator(); 이런부분

package com.codestates.coplit; 
import java.util.*;

public class Solution { 
  public Integer getValue(HashMap<String, Integer> hashMap, String key) {
    //TODO..HashMap과 키값을 입력받아 키값을 리턴
   
    return hashMap.get(key);
  }
}

아니 래퍼런스 코드있는거 이제알앗다

위에 두줄 필요어ㅃㅆ는데 왜쓴거야

ㅡㅋㅋ큐ㅠ

 

문제푸는데 너무 오래 걸린다ㅠ

좀 더 쉬운방식으로 푸는 법을 몰라서 그런걸까

익숙하지않아서 그런걸까.....😔😔😔😔

할게 많은데....🤔

 

14
public class Solution { 
  public HashMap<String, Integer> addKeyAndValue(HashMap<String, Integer> hashMap, String key, int value) {
    //TODO..HashMap과 key,value를 입력받아 추가한 후 추가한 HashMap을 리턴
    hashMap.put(key,value); // 
    return hashMap;
    
  }
}

hashMap.put(key,value) 값을 추가 반환할때는 전의 값을 반환 이전값이 없으면 null

 

더보기
  1. put(key, value): 주어진 key와 value를 HashMap에 추가합니다. 이미 동일한 key가 존재하는 경우, 해당 key에 연결된 값이 업데이트됩니다.
  2. get(key): 주어진 key에 연결된 값을 반환합니다. 만약 해당 key가 HashMap에 없으면 null을 반환합니다.
  3. remove(key): 주어진 key와 해당 key에 연결된 값을 HashMap에서 제거합니다.
  4. containsKey(key): 주어진 key가 HashMap에 존재하는지 여부를 확인하고, 존재하면 true를 반환합니다.
  5. containsValue(value): 주어진 value가 HashMap에 존재하는지 여부를 확인하고, 존재하면 true를 반환합니다.
  6. keySet(): HashMap의 모든 키(key)를 Set 형태로 반환합니다.
  7. values(): HashMap의 모든 값(value)을 Collection 형태로 반환합니다.
  8. entrySet(): HashMap의 모든 키-값 쌍을 Set 형태로 반환합니다.
  9. size(): HashMap에 저장된 키-값 쌍의 수를 반환합니다.
  10. clear(): HashMap의 모든 항목을 제거하여 비웁니다.

왜 자꾸 까먹는거지요

 

18

public class Solution { 
  public int addEvenValues(HashMap<Character, Integer> hashMap) {
    //TODO..짝수 Value를 모두 더한값 리턴 
    int result = 0;
    for(Character key : hashMap.keySet()) {//모든키의 값 반환해서 저장
    Integer value = hashMap.get(key); //key랑 연결된 값을 value에 저장
    if ( value % 2 == 0) { //짝수라면 결과값에 포함
      result += value;
          }
      }
    return result;
     }
  }

 

19

public class Solution { 
  public HashMap<String, String> addFullNameEntry(HashMap<String, String> hashMap) {
    //TODO.. 기존값을 옮겨서 새Entry를 저장후 리턴
    String firstName = hashMap.get("firstName");//연결된값을가져와서 변수에저장
    String lastName = hashMap.get("lastName");
    hashMap.put("fullName",firstName + lastName); //키와 값을 hashMap에 저장
    
    return hashMap;
  }
}

문제 이해를 잘못해서 맨날 삽질ㅠ.... 기존값으로 새 Entry를 만들어서 기존 hashMap을 리턴하는거였따

새hashMap인줄 ㅡㅡㅡ

 

21

public class Solution { 
  public String getElementOfListEntry(HashMap<String, List<String>> hashMap, String key, int index) {
    //TODO..List의 해당key가 존재하면 index가 가리키는 요소 리턴
    if(!hashMap.containsKey(key)) { //키가 존재하지않을 경우 null
      return null;
    } else {
    List<String> list = hashMap.get(key); //참조하기위해 key에 해당하는 리스트를 가져옴
    if( index < 0 || index >= list.size()) {
      return null;
     }
     return list.get(index);
    }
  }
}

w정신나갈거같

 

23

public class Solution { 
  public HashMap<String, Integer> select(String[] arr, HashMap<String, Integer> hashMap) {
    //TODO..배열의 값을 키, HashMap의 값을 value로 가진 새로운 HashMap리턴 
    HashMap<String, Integer> select = new HashMap<>(); //값을 저장할 새로운 HashMap 생성

    for(String key : arr){ //배열arr의 요소를 변수에 할당
      if(hashMap.containsKey(key)){ //해시맵에 특정 키가 있다면
          select.put(key, hashMap.get(key)); //값을 select에 저장
      }
    }
      return select;
  }
}

 

24

어렵다....이렇게 이렇게 하고싶다고 생각은 나는데

그걸 코드로 어떻게 써야할지 잘 모르겠따..

public class Solution { 
  public HashMap<Character, Integer> countAllCharacter(String str) {
    //TODO.. 각 문자를 키로 가지고 , 문자의 등장횟수를 int 값으로 가지는 HashMap 리턴
    if(str.isEmpty()){
      return null;
    }
    HashMap<Character , Integer> hashMap = new HashMap<>();

    for(char c : str.toCharArray()) { //문자열을 문자단위로 순회
      if (hashMap.containsKey(c)) { //문자가 키로 존재한다면
          int count = hashMap.get(c);//등장횟수를 가져옴
          hashMap.put(c,count+1); // 1 더한 등장횟수값을 해시맵에 저장
      } else{
        hashMap.put(c,1);//처음 등장하는경우 키를 추가하고 1을 저장
      }
    }
    return hashMap;
  }
}

 

 

'실습👁️‍🗨️ > 문제' 카테고리의 다른 글

스트림 연습문제  (0) 2023.11.03
연습문제(배열)  (0) 2023.10.19
연습문제  (0) 2023.10.12
연습문제  (0) 2023.10.11