코딩테스트

[프로그래머스/자바] 뉴스 클러스터링_17677

라임온조 2023. 8. 18. 14:26

문제 및 코드

1. 생각

// 생각
    // 문자열 처리
// 구현
    // str1과 str2 각각을 돈다
        // 돌면서 2개씩 잘라서 문자열을 추출한다
        // 추출한 문자열이 영문자로만 되어 있는지 확인
        // 영문자를 모두 소문자나 대문자로 바꿈
        // 완성된 문자열을 배열이나 리스트에 추가
    // 교집합 사이즈 구하기
        // str1과 str2에서 구한 리스트를 각각 돌면서 각각의 map으로 개수 저장
        // 두 맵에 같은 원소가 있으면 더 작은 값이 교집합 개수
    // 합집합 사이즈 구하기
        // 위에서 구한 map 활용
        // 두 맵에 같은 원소 있으면 더 큰 값이 합집합 개수
        // 같은 원소 아니면 개수만큼 개수에 더하기
    // 위에서 구한 교집합 사이즈 / 합집합 사이즈 * 65536 결과의 정수부가 답

2. 회고

  • 시간이 오래 걸리긴 했지만 어떻게 풀어나가야 할지 로직을 생각해내는 건 할만했다. 
  • 하지만 실제로 구현할 때 필요한 개념을 까먹어서 참고를 해야 했다. 정규식 체크 부분...
  • 그리고 일단 제일 먼저 생각나는 걸로 풀었는데 뭔가 지저분한 것 같고... 그렇다

 

3. 기억

  • Pattern 클래스
    • import java.util.regex.*
  • 영어 대문자 소문자만 가지고 있는지 확인하는 정규식
    • Pattern.matches("^[a-zA-Z]*$", str)

정규표현식 상세 내용 참고

 

4. 체크

풀이 횟수 시간 정답 여부 참고 여부
1 1시간 20분 X O