Map에서 put과 replace 차이를 알고 싶어요!
1333
작성한 질문수 6
혼자 해보다 궁금한 점이 있어서 질문 올려봅니다!
1. while문 속의 while문 에서
map.put(startChar, map.get(startChar)-1);
이 코드가 Map의 내용을 수정하는 코드가 맞는 것인지 알고 싶습니다.
2. 1이 맞을 경우에 Map에 존재하는 data의 값을 수정하는데
put(기존에있는key, 새로운value)을 사용한다면,
replace와의 차이가 무엇인지 알고 싶습니다.
답변 1
1
안녕하세요
이 문제는 twoPointer문제입니다.
주어진 문제 ccaabbb 에서 제일 긴 문자열 두개를 포함(distinct)한것 그래서 답이 aabbb 입니다.
질문 주신
1. while문 속의 while문 에서
map.put(startChar, map.get(startChar)-1);
이 코드가 Map의 내용을 수정하는 코드가 맞는 것인지 알고 싶습니다.
=> while문은 ccaab 즉 문자가 3개 이상일때 체크 들어가는 타이밍입니다.
왜냐면 2개로 이루어진 문자열을 구해야 하므로 , 로그를 찍어보시면 기존 map 에 c 문자부터 갯수를 줄이고 있습니다.
2. 1이 맞을 경우에 Map에 존재하는 data의 값을 수정하는데
put(기존에있는key, 새로운value)을 사용한다면,
replace와의 차이가 무엇인지 알고 싶습니다.
=> replace는 거의 사용을 해본적이 없습니다. 실전에서도 사용을 거의 안합니다. 이유는 잘 안 써봐서
찾아보니까 기존키를 가져오면 기존키의 value를 리턴하는건데 정확히 개념을 모르는거면 아예 안쓰는게 낫습니다.
이문제에서도 map의 등록된값들을 두개의 포인터로 시작하면서 체크하는데 replace까지 쓰면 너무 헷갈릴거 같습니다.
3. 일단 TwoPointer문제는 한개의 포인터가 계속들어가면서 새로운 포인터 뒤를 따라서 계산을 잘해줘야 합니다.
실전에서도 노트에다가 적어가면서..디버깅을 천천히 해보시면 이해가 가실겁니다. 수고하세요~
강의자료에 나오는 m과 n의 범위가 코딩하고 다른거 같습니다
0
254
0
나선형매트릭스 깃허브에 코드가 없는것같아요
0
209
0
로그 파일의 데이터 재정렬 코드가 깃허브에 없어요!
0
224
0
새로 생긴 기초강의 질문드려요
1
375
1
질문드립니다
1
219
1
Unique Paths Integer 질문입니다
0
219
1
subString 방법으로 문제 풀이 영상은 짤린건가요?
1
252
1
DFS 방식으로 푼 것이 맞나요?
0
308
2
질문드립니다~
0
196
1
left if문에 대해서
1
256
1
오타 인가요?
1
237
1
안녕하세요 강사님
1
189
1
질문 드립니다
0
172
2
Queue&Stack 문제해설집 문의
0
183
1
문제분석 로직 질문
1
230
1
시간 복잡도 문의드립니다.
1
232
1
시간복잡도 질문드립니다.
1
202
1
for-each 문 질문있습니다!
0
294
1
강의영상에서 사용된 로그 메소드가 궁금합니다.
2
281
2
강의자료 + 문제 이해 관련 질문입니다
1
278
3
강사님 오류맞나요?
1
207
1
강사님 시간 복잡도에 대해서 질문드립니다.
1
173
1
질문입니다.
1
201
1
문제에 대한 이해
1
313
1





