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
더보기
- put(key, value): 주어진 key와 value를 HashMap에 추가합니다. 이미 동일한 key가 존재하는 경우, 해당 key에 연결된 값이 업데이트됩니다.
- get(key): 주어진 key에 연결된 값을 반환합니다. 만약 해당 key가 HashMap에 없으면 null을 반환합니다.
- remove(key): 주어진 key와 해당 key에 연결된 값을 HashMap에서 제거합니다.
- containsKey(key): 주어진 key가 HashMap에 존재하는지 여부를 확인하고, 존재하면 true를 반환합니다.
- containsValue(value): 주어진 value가 HashMap에 존재하는지 여부를 확인하고, 존재하면 true를 반환합니다.
- keySet(): HashMap의 모든 키(key)를 Set 형태로 반환합니다.
- values(): HashMap의 모든 값(value)을 Collection 형태로 반환합니다.
- entrySet(): HashMap의 모든 키-값 쌍을 Set 형태로 반환합니다.
- size(): HashMap에 저장된 키-값 쌍의 수를 반환합니다.
- 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;
}
}