BOJ
[JAVA] 백준 5107번 - 마니또
yujinkimkim
2023. 7. 20. 15:02
5107번: 마니또
N명의 사람들이 있다. 이들은 각자 다른 한 명의 이름이 적힌 쪽지를 받아서, 그 사람에게 몰래 선행을 베푼다. 이때 자기 자신의 이름을 받을 수는 없으며, 선행을 받은 사람은 누가 자신을 도와
www.acmicpc.net
오잉 틀렸습니다 나올줄 알고 습관처럼 대기하고 있었는데 바로 통과해서 먼가 놀랐슴니다
package baekjoon;
import java.util.*;
import java.io.*;
public class b5107 {
public static void main(String[] args) throws IOException{
// TODO Auto-generated method stub
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringTokenizer st;
int N = Integer.parseInt(br.readLine());
for(int i = 1 ; ; i++)
{
Map <String, String> arr = new HashMap();
String startArr[] = new String[20];
int cnt = 0;
for(int j = 0 ; j < N ;j++)
{
st = new StringTokenizer(br.readLine());
String a = st.nextToken();
String b = st.nextToken();
startArr[j] = a;
arr.put(a, b);
}
String end;
for(String start : startArr)
{
end = arr.get(start);
while(true)
{
end = arr.get(end);
if(end == null)
break;
else if(end.equals(start))
{
cnt++;
//arr.values().remove(end);
arr.keySet().remove(end);
break;
}
}
}
System.out.println(i+" "+cnt);
N = Integer.parseInt(br.readLine());
if(N == 0)
break;
}
}
}
자바로 해시를 처음 써봐서 걍 . 눌렀는데 나오길래 keySet로 일단 해봤는데 되길래 이게 되네 상태돼서
자바 해시 구글링 해봤는데 정리 완죤 잘해주신 분 글 찾았슴니당
Java의 맵에서 키 제거 (techiedelight.com)
Java의 맵에서 키 제거
이 게시물은 Java의 Map에서 키를 제거하는 방법에 대해 설명합니다. 1. 사용 remove() 방법 표준 솔루션은 Java의 맵에서 키에 대한 매핑을 제거하는 것입니다. remove() 방법 Map 상호 작용. 때 remove() 메
www.techiedelight.com
챗씨에게 물어보고 왔습니당
keySet()는 맵에 모든 키를 포함하는 set로 반환해준다네요
keySet().removeAll()은 맵의 키들 중에서 특정한 조건을 만족하는 키들을 모두 삭제하는 역할이래요
remove랑 차이는
keySet().removeAll()은 맵의 키들 중에서 특정한 조건을 만족하는 키들을 모두 삭제하는데 사용되고, remove()는 주어진 키에 해당하는 항목을 맵에서 삭제하는데 사용됩니다.
래요
public static void main(String[] args) throws IOException{
// TODO Auto-generated method stub
Map<String, String> map = new HashMap<>();
map.put("C++", "a");
map.put("Java", "C++");
map.put("c", "C++");
map.put("Ruby", "b");
map.keySet().removeAll(Arrays.asList("C++", "Java"));
System.out.println(map); //{c=C++, Ruby=b}
}