TIL(Today I Learned)
99클럽 코테 스터디 11일차 TIL + LeetCode 187 (Repeated DNA Sequences, java)
zincah
2025. 4. 14. 21:08
반응형
오늘의 학습 키워드
- 문자열
- HashMap
문제 탐색하기
문제
문제 풀이 설계하기
주어진 s 문자열을 길이가 10인 문자열로 잘라서 새로운 문자열을 만들었을 때, 그 문자열이 2번 이상 나올 경우 문자열들을 출력하면 되는 문제입니다.
따라서 주어진 s를 for문을 돌면서 길이가 10가 되도록 substring을 사용해서 잘라줬고 그 문자열을 hashmap에 저장해주었습니다. 문자열을 키로 그리고 mapOrDefault 메소드를 사용해서 key 값이 처음일 경우는 value가 1, key값이 존재할 경우는 value 에 + 1 해주면서 세팅해주었습니다.
코드
class Solution {
public List<String> findRepeatedDnaSequences(String s) {
HashMap<String, Integer> map = new HashMap<>();
for(int i=0; i<=s.length()-10; i++){
String str = s.substring(i, i+10);
map.put(str, map.getOrDefault(str, 0) + 1);
}
ArrayList<String> arr = new ArrayList<>();
for(String str : map.keySet()){
if(map.get(str) > 1){
arr.add(str);
}
}
return arr;
}
}
오늘의 회고
Hashmap을 통해서 쉽게 풀 수 있는 문제였습니다.
반응형